所以我一直在关注本教程:
http://framework.zend.com/manual/2.0/en/user-guide/routing-and-controllers.html
我应该运行phpunit - 我运行命令phpunit module/Album/src/Album/Controller/AlbumControllerTest.php
我正在遇到问题:
PHP Fatal error: Class 'Zend\Mvc\Application' not found in /home/...rest of the folders here.../AlbumControllerTest.php on line 71
AlbumControllerTest.php中的第71行是:
$bootstrap = \Zend\Mvc\Application::init(include 'config/application.config.php');
当我在Zend / Mvc / i下看到一个名为Application的文件时,所以我假设这不是问题。
config / application.config.php如下所示:
<?php
// config/application.config.php:
return array(
'modules' => array(
'Application',
'Album', // <-- Add this line
),
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
'module_paths' => array(
'./module',
'./vendor',
),
),
);
?>
根据教程 - 我相信。有谁知道如何解决这个问题?!
答案 0 :(得分:2)
从Magento Commerce 2.2.7升级到2.3时,我遇到了同样的问题。 我已经通过手动编辑composer.json自动加载功能对其进行了修复:
"autoload-dev": {
"psr-4": {
"Magento\\Framework\\": "lib/internal/Magento/Framework/",
"Magento\\Setup\\": "setup/src/Magento/Setup/",
"Magento\\": "app/code/Magento/",
"Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
}
},
运行命令:
composer dumpautoload
就是这样。
答案 1 :(得分:0)
显然,您的ZF2未自动加载。
要为模块测试设置zf2和服务管理器,您可以使用https://github.com/ZF-Commons/ZfcBase/blob/master/test/Bootstrap.php
在您的测试中,您将使用它:
use YourNamespace\Bootstrap;
//...
public function setUp()
{
Bootstrap::init();
//...
$this->controller->setServiceLocator(Bootstrap::getServiceManager());
}
//...