我正在运行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
测试指向的代码来自我的一个Module.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文件以禁止这样的警告,但它不起作用。还有其他我想念的东西吗?
答案 0 :(得分:0)
好的,我明白了。正如Indrasinh Bihola说的那样:我已经离开了一部分。好吧,这本书做到了。我借用的片段来自前面的部分,但它跳过关键部分,并没有说明原始部分在哪里(37页回来!)。另外,不要找借口,但我从来没有在PHP中使用过闭包,我不知道实际上有什么用($ services)。现在我做。我不会再犯同样的错误了。