PHPUnit 错误未定义的变量


PHPUnit error undefined variable

我正在运行PHPunit来测试我的ZF2应用程序。我在我的Windows机器上尝试了它(在xampp下),它工作正常。但是当我将其移动到虚拟 Ubuntu 14.10 服务器时,每次测试都会收到以下错误:

Undefined variable: services

我转到/etc/php5/cli/php.ini 并设置错误报告如下:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE

测试指向的代码来自我的一个模块.php文件

public function onBootstrap(MvcEvent $event)
{
    $sharedEventManager =  $event->getApplication()
        ->getEventManager()
        ->getSharedManager();
    $sharedEventManager->attach('user', 'log-fail', function($event) use ($services) {
        $username = $event->getParam('username');

        $log = $services->get('log');
        $log->warn("Error logging user [$username]");
    });
}

它专门抱怨线路$sharedEventManager->attach('user', 'log-fail', function($event) use ($services).就像我说的,我尝试编辑 php.ini 文件来抑制这样的警告,但它不起作用。我还缺少什么吗?

好的,我想通了。正如Indrasinh Bihola所说:我遗漏了一部分。嗯,这本书做到了。我借来的片段来自前面的部分,但它跳过了关键部分,并且没有指示原始部分的位置(37 页!另外,不是找借口,但我从未在 PHP 中使用过闭包,我不知道 ($services) 实际上做了什么。现在我做到了。我不会再犯同样的错误了。