本文整理汇总了PHP中Zend\Session\SessionManager::isValid方法的典型用法代码示例。如果您正苦于以下问题:PHP SessionManager::isValid方法的具体用法?PHP SessionManager::isValid怎么用?PHP SessionManager::isValid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Session\SessionManager
的用法示例。
在下文中一共展示了SessionManager::isValid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: isValid
/**
* Is this session valid?
*
* Notifies the Validator Chain until either all validators have returned
* true or one has failed.
*
* @return bool
*/
public function isValid()
{
if (null === $this->isValid) {
$this->isValid = parent::isValid();
}
return $this->isValid;
}
示例2: _init
public function _init(Dispatcher $dispatcher)
{
// 引入Composer,Yaf扩展的配置项yaf.use_spl_autoload务必设置为1
if (file_exists(ROOT_PATH . '/vendor/autoload.php')) {
$loader = (include ROOT_PATH . '/vendor/autoload.php');
//$loader->add("",ROOT_PATH.'/library');
//$loader->addPsr4("Zend\\",ROOT_PATH.'/library/Zend');
Registry::set('loader', $loader);
}
// 禁止自动渲染
$dispatcher->autoRender(FALSE);
// 保存配置
$this->_config = Application::app()->getConfig();
Registry::set('config', $this->_config);
// 报错设置
if ($this->_config->global->showError) {
error_reporting(-1);
ini_set('display_errors', 'On');
}
// 加解密
if (!empty($this->_config->global->key)) {
Registry::set('enc', function () {
$blockCipher = BlockCipher::factory('mcrypt', array('algo' => 'aes'));
$blockCipher->setKey($this->_config->global->key);
return $blockCipher;
});
}
// 命令行方式,跳过SESSION
if (!defined("RUN_IN_CLI")) {
// 保存路径
$sessionConfig = $this->_config->session->toArray();
if (isset($sessionConfig['save_path'])) {
@mkdir($sessionConfig['save_path'], 0777, true);
}
// 配置
$config = new SessionConfig();
$config->setOptions($sessionConfig);
// 会话管理器
$manager = new SessionManager($config);
// 开启会话
$manager->start();
// 验证会话
$manager->getValidatorChain()->attach('session.validate', array(new HttpUserAgent(), 'isValid'));
if (!$manager->isValid()) {
$manager->destroy();
throw new \Exception("会话验证失败");
}
// 会话Token
$default = new Zend\Session\Container();
if (empty($default->offsetGet('securityToken'))) {
$default->offsetSet('securityToken', md5(uniqid(rand(), true)));
}
// 保存实例
Registry::set('session', $default);
Registry::set('sm', $manager);
}
// 数据库
Registry::set('db', function () {
$mysqlMasterConfig = $this->_config->mysql->master->toArray();
$adapter = new Adapter($mysqlMasterConfig);
$connect = $adapter->getDriver()->getConnection();
for ($i = 0; $i < 5; $i++) {
if ($connect->isConnected()) {
break;
}
$connect->connect();
}
return $adapter;
});
// 邮件
Registry::set('mail', function () {
$options = new SmtpOptions($this->_config->smtp->toArray());
$mail = new SmtpTransport();
$mail->setOptions($options);
return $mail;
});
// 日志
Registry::set('logger', function () {
$logger = new Zend\Log\Logger();
$writer = new Zend\Log\Writer\Stream($this->_config->log->path . '/' . date("Ymd") . ".log");
$logger->addWriter($writer);
return $logger;
});
}