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