我希望能够构建一个小应用程序(例如基本登录MVC结构)并构建我的Phalcon项目,以便我可以将其放在一个文件夹中并调整config
文件位。
E.g。我有一个基于Vokuro教程构建的基本登录应用程序。现在,不是将控制器复制到一个目录,模型到另一个目录等,以便将其部署到我现有的应用程序中,我想将其放入一个文件夹(例如app/extensions/security
),然后调整我的主config
/ bootstrap
,以便将Users
或Profiles
的请求定向到app/extensions/security/controllers
中的控制器。
根据文件夹结构,所有内容都是命名空间,我当前的loader
看起来像是:
$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
文件夹中创建一个路由文件,然后将其加载到主引导程序文件中。
答案 0 :(得分:2)
转移到多模块应用程序可能是个好主意。我在Phalcon Multi-Module Routing解释了我是如何做到的。
您可以在一个地方为您的安全模块设置所有路线,查看目录,单独配置等。
从您的安全基类扩展是很好的,您已经从Phalcon\Mvc\Model
延伸,所以它没有什么不同。
你可以这样做:
<?php
namespace My\Controllers;
use My\Security\Controllers\ControllerBase as SecurityBase;
class ControllerBase extends SecurityBase
{
...