Почему Symfony 2 использует NativeSessionStorage для тестирования?

Я пишу тесты для своих контроллеров и получаю следующую ошибку для контроллера, использующего сессию:

Не удалось запустить сеанс, поскольку заголовки уже были отправлены \ «/ home / rightink / public_html / project-file-manager / 1.0 / vendor / phpunit / phpunit / src / Util / Printer.php \» в строке 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», который приводит к исключению.

Любая идея, почему я получил эту ошибку сеанса?

Спасибо,

Винсент

1

Решение

Вы используете session элемент как отдельное использование.

Пожалуйста, используйте сессию как сервис symfony2 как пример:

public function indexAction($bar)
{
$session = $this->get('session');
$session->set('foo', $bar);

// ...
}

Native Session предназначен для классического использования PHP, другие опции — для Mongo, Memcache и других. Больше информации Вот

Надеюсь это поможет

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]