我本周刚开始关注Phalcon,我正在尝试使用开发工具创建一个多模块应用程序。
运行phalcon project <name> multiple
的结果只会创建一个模块('前端')并且工作正常。但是,当我添加第二个模块时(通过复制前端并将命名空间更改为\ Backend,我无法访问Backend \ IndexController类。
阅读有关多个模块应用程序的文档页面并查看示例(https://github.com/phalcon/mvc/tree/master/multiple和https://github.com/phalcon/mvc/tree/master/multiple-volt)以及Google小组上的旧问题后(抱歉,自此以后不能发布超过2个链接我是StackOverflow的新手,我已经结束了对services.php文件中这一行的评论:
$router->setDefaultNamespace("MyL\Frontend\Controllers"); //project name is MyL
并在我的后端/ Module.php文件的setServices上添加以下内容:
$di->set('dispatcher', function() {
$dispatcher = new Dispatcher();
$dispatcher->setDefaultNamespace("MyL\Backend\Controllers");
return $dispatcher;
});
和frontend / Module.php上类似的东西
它适用于这些修改,但我的问题是:这是最好的方法吗,还是有更好的方法?
提前致谢!
答案 0 :(得分:1)
您需要在应用中注册模块,如下所示:
$app = new \Phalcon\Mvc\Application();
$app->registerModules(
[
'frontend' => [
'className' => 'MyL\Frontend\Controllers',
'path' => '../apps/frontend/Module.php'
],
'backend' => [
'className' => 'MyL\Backend\Controllers',
'path' => '../apps/backend/Module.php'
],
]
);
确保您已为每个模块准备好Module.php
答案 1 :(得分:0)
这是一种在没有模块的情况下在Phalcon项目中拆分前端和后端的简单方法: https://github.com/borzov/phalcon-templates