Model view controller Phalcon中控制器的不同目录和命名空间

Model view controller Phalcon中控制器的不同目录和命名空间,model-view-controller,phalcon,Model View Controller,Phalcon,我希望能够构建一个小应用程序(例如,一个基本的登录MVC结构)并构建我的项目,这样我就可以将它放在一个文件夹中,并稍微调整一下config文件 例如,我根据教程构建了我的基本登录应用程序。现在,为了在我现有的应用程序中部署它,我不想将控制器复制到一个目录,将模型复制到另一个目录,而是想将其放入一个文件夹(例如app/extensions/security)然后调整我的主配置/引导,以便用户或配置文件的请求被定向到应用/扩展/安全/控制器中的控制器 所有内容都是根据文件夹结构命名的,我当前的加载程

我希望能够构建一个小应用程序(例如,一个基本的登录MVC结构)并构建我的项目,这样我就可以将它放在一个文件夹中,并稍微调整一下
config
文件

例如,我根据教程构建了我的基本登录应用程序。现在,为了在我现有的应用程序中部署它,我不想将控制器复制到一个目录,将模型复制到另一个目录,而是想将其放入一个文件夹(例如
app/extensions/security
)然后调整我的主
配置
/
引导
,以便
用户
配置文件
的请求被定向到
应用/扩展/安全/控制器
中的控制器

所有内容都是根据文件夹结构命名的,我当前的
加载程序类似于:

$loader->registerNamespaces(array(
    'Me\Controllers' => $config->application->controllersDir,
    'Me\Models' => $config->application->modelsDir,
    'Me\Forms' => $config->application->formsDir,
    'Me' => $config->application->libraryDir,
    'Me\Security' => $config->application->extensionsDir . 'security/'
));
基本上-如何使Phalcon在某些控制器的
app/controllers
中查找,在另一个目录中查找其他控制器(
app/extensions/security/controllers

我不确定这是否解释得足够好-如果需要澄清,请告诉我

编辑

通过将此添加到我的路线,我已显示登录页面

$router->add('/session/:action', array(
    'namespace' => 'Me\Security\Controllers',
    'controller' => 'Session',
    'action' => 1
));

因此,我想我会在我的
app/extensions/security
文件夹中创建一个routes文件,然后将其加载到主引导文件中。

移动到多模块应用程序可能是个好主意。我解释了我当时是怎么做的

您可以在一个位置设置安全模块的所有路由、查看目录、单独配置等

可以从安全基类进行扩展,您已经从
Phalcon\Mvc\Model
进行了扩展,因此也没有什么不同

你可以这样做:

<?php
namespace My\Controllers;

use My\Security\Controllers\ControllerBase as SecurityBase;

class ControllerBase extends SecurityBase
{
... 

您的路由器中设置了名称空间吗?我刚刚试过,一切正常,谢谢。我认为每个扩展名都有一个路由文件,然后由主引导文件加载。@JamesFenwick有没有办法让这些控制器找到正确的视图文件?目前,我正在考虑将详细信息放入特定于扩展名的配置文件中。谢谢,现在我们来看一下。在快速浏览之后,我有一个问题-这是否可以使一个模块中的类从另一个模块中的类继承?
主应用程序
中的每个类都应该继承自
安全模块
中的
控制器库
,因为它实现了
身份验证
/
ACL
检查。