PHPUnit \ Framework \ Error \ Warning:ini_set():标头已发送。您目前无法更改会话模块的ini设置

时间:2018-10-29 17:50:44

标签: phpunit zend-framework3 php-7.2 zend-test

我正在跟踪zend's tutorial在我的项目上使用zend-test,但是我得到了error

为建立项目基础,我在此book中做了最大的工作。

我也在使用PHP 7.2。

当我搜索google时,我发现很多人在将PHP 7.2与PHP Unit结合使用时遇到问题,但现在看来还可以。 zend-test是否也在更新?如果没有,我现在该如何使用zend-test?如果是,我如何获得最新版本?

编辑

经过一些测试,我发现了问题所在,它是在bootstrap函数上:

public function onBootstrap( MvcEvent $event ) {
    $application = $event->getApplication();
    $serviceManager = $application->getServiceManager();
    $sessionManager = $serviceManager->get(SessionManager::class);

    $eventManager = $event->getApplication()->getEventManager();
    $sharedEventManager = $eventManager->getSharedManager();
    // Registra o método fo event listener
    $sharedEventManager->attach(AbstractActionController::class,
            MvcEvent::EVENT_DISPATCH, [$this, 'onDispatch'], 100);

    // Caso a sessão não seja válida, esquece ela
    $this->forgetInvalidSession($sessionManager);
}

更具体地说,问题始于这一行:

$sessionManager = $serviceManager->get(SessionManager::class);

编辑2

删除它正在使用的那行,虽然还行,但在相似行中的另一个模块中开始出现相同的错误:

$authService = $container->get(\Zend\Authentication\AuthenticationService::class);

0 个答案:

没有答案