我正在尝试在我的应用程序中使用Sessions。但是,我无法让他们在一个非常简单的phpunit测试中工作。进行以下测试:
<?php
namespace Tests\App;
class SessionTest extends \PHPUnit_Framework_TestCase
{
public function testSession()
{
$session = new \Phalcon\Session\Adapter\Files(array('uniqueId' => 'my-private-app'));
$session->start();
$session->set('foo', 'bar');
$this->assertEquals('bar', $session->get('foo'));
}
}
结果是:
有1次失败:
1)Tests \ App \ SessionTest :: testSession断言声明为null 匹配预期的'bar'。
我在这里遗漏了什么吗?根据文档,这正是简单会话应该如何工作。
在$ session-&gt; start()之后立即在会话对象上使用var_dump也会显示会话对象认为没有启动:
class Phalcon\Session\Adapter\Files#226 (3) {
protected $_uniqueId =>
string(14) "my-private-app"
protected $_started =>
bool(false)
protected $_options =>
array(1) {
'uniqueId' =>
string(14) "my-private-app"
}
}
该会话显然难以启动时,是否应该存在某种可捕获的反馈?我现在正在使用Phalcon 1.0.1。提前感谢任何建议!
答案 0 :(得分:1)
由于PHPUnit会自动生成一些输出,这会隐式地使得标头在请求中发送,这使得Phalcon无法启动会话。在这种情况下,您可以使用@session_start()强制启动会话,使_SESSION超全局可用