我正在使用ZendFramework3进行项目。我有一个有效的模块 (例如:myProject / module / MyModule)。它正在工作的一切,但我想扩展MyModule / src / Controller / CrudController中的控制器。我的意思是,我的ZF3项目中有一个简单的模块,我希望这个模块中的控制器扩展一个位于myProject / vender / MyFramework / Mvc / Controller /
中的框架中的Controller问题是致命错误:在第7行的C:\ wamp \ www \ myProject \ module \ MyModule \ src \ Controller \ MyController.php中找不到类'MyFramework \ Mvc \ Controller \ ExtendedController'
<?php
namespace MyModule\Controller;
use MyFramework\Mvc\Controller\ExtendedController;
class MyController extends ExtendedController
{
}
我不知道我应该怎样做才能找到置于供应商目录框架中的Controller。
如果有人可以帮助我,那将是一种乐趣。
目前,我的代码基于Zend的功能。例如,我们可以找到这个
use Zend\Mvc\Controller\AbstractActionController;
我认为扩展ExtendedController的控制器'MyController'找到了正确的文件,但控制器可能没有加载或类似的东西
你的 - )
编辑:我的问题已经解决了。问题是需要更新的composer.json。我在composer.json文件中添加了这段代码:
"autoload" : {
"psr-0" : { "MyFramework\\": "vendor/MyFramework/{folder}/"},
},
答案 0 :(得分:0)
看起来作曲家找不到你的模块。看一下zend-mvc中的composer.json文件,尤其是autoload部分。这就是作曲家如何知道如何注册包。
AFAIK你不能只在供应商目录中放置一个包。您需要创建一个完整的composer package并将其添加到composer.json require部分。
在开发过程中可能更容易的是将模块放在./module/
目录中。您可以编辑模块,并在准备就绪后通过packagist或private composer repository发布。
要使其正常工作,您需要将MyFramework
添加到项目的自动加载部分:
"autoload": {
"psr-4": {
"Application\\": "module/Application/src/",
"MyFramework\\": "module/MyFramework/src/"
}
},
显然,您需要在更改自动加载部分后使用composer dump-autoload
更新自动加载器。