为什么 Symfony 2 使用 NativeSessionStorage 进行测试?
Why Symfony 2 uses NativeSessionStorage for testing?
我正在为我的控制器编写测试,但对于使用会话的控制器,我收到以下错误:
Failed to start the session because headers have already been sent by \"/home/rightink/public_html/project-file-manager/1.0/vendor/phpunit/phpunit/src/Util/Printer.php\" at line 139.
堆栈跟踪显示 Symfony 在执行测试时使用了 "NativeSessionStorage.php",但事实并非如此。
我有以下 config_test.yml 文件:
imports:
- { resource: config_dev.yml }
- { resource: parameters_test.yml }
framework:
test: ~
session:
storage_id: session.storage.mock_file
profiler:
collect: false
web_profiler:
toolbar: false
intercept_redirects: false
swiftmailer:
disable_delivery: true
控制器正在使用这样的会话:
$session = new Session();
$session->start();
注意:堆栈跟踪显示这是导致异常的 "start" 方法。
知道为什么我会收到此会话错误吗?
谢谢,
文森特
您正在使用 session
元素作为独立用法。
请以会话为symfony2 service为例:
public function indexAction($bar)
{
$session = $this->get('session');
$session->set('foo', $bar);
// ...
}
Native Session 用于 PHP 经典用法,其他选项用于 Mongo、Memcache 等。更多信息 here
希望对您有所帮助
我正在为我的控制器编写测试,但对于使用会话的控制器,我收到以下错误:
Failed to start the session because headers have already been sent by \"/home/rightink/public_html/project-file-manager/1.0/vendor/phpunit/phpunit/src/Util/Printer.php\" at line 139.
堆栈跟踪显示 Symfony 在执行测试时使用了 "NativeSessionStorage.php",但事实并非如此。
我有以下 config_test.yml 文件:
imports:
- { resource: config_dev.yml }
- { resource: parameters_test.yml }
framework:
test: ~
session:
storage_id: session.storage.mock_file
profiler:
collect: false
web_profiler:
toolbar: false
intercept_redirects: false
swiftmailer:
disable_delivery: true
控制器正在使用这样的会话:
$session = new Session();
$session->start();
注意:堆栈跟踪显示这是导致异常的 "start" 方法。
知道为什么我会收到此会话错误吗?
谢谢,
文森特
您正在使用 session
元素作为独立用法。
请以会话为symfony2 service为例:
public function indexAction($bar)
{
$session = $this->get('session');
$session->set('foo', $bar);
// ...
}
Native Session 用于 PHP 经典用法,其他选项用于 Mongo、Memcache 等。更多信息 here
希望对您有所帮助