1

我这周才开始寻找 Phalcon,我正在尝试使用开发工具创建一个多模块应用程序。

运行的结果phalcon project <name> multiple只创建了一个模块('frontend')并且工作正常。但是,当我添加第二个模块时(通过复制前端模块并将命名空间更改为 \Backend ,我无法进入 Backend\IndexController 类。

在阅读了关于多模块应用程序的文档页面并查看了示例(https://github.com/phalcon/mvc/tree/master/multiplehttps://github.com/phalcon/mvc/tree/master/multiple -volt)和一个关于谷歌组的老问题(抱歉,不能发布超过 2 个链接,因为我是 StackOverflow 上的新手),我已经在 services.php 文件中结束了这一行的评论:

$router->setDefaultNamespace("MyL\Frontend\Controllers"); //project name is MyL

并在我的 backend/Module.php 文件的 setServices 中添加以下内容:

$di->set('dispatcher', function() {
                $dispatcher = new Dispatcher();
                $dispatcher->setDefaultNamespace("MyL\Backend\Controllers");
                return $dispatcher;
            });

以及前端/Module.php 上的类似内容

它适用于这些修改,但我的问题是:这是最好的方法,还是有更好的方法?

提前致谢!

4

2 回答 2

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

于 2013-08-22T19:42:34.127 回答
0

这是在没有模块的情况下在 Phalcon 项目中拆分前端和后端的简单方法: https ://github.com/borzov/phalcon-templates

于 2014-01-08T20:09:27.310 回答