Phalcon 中控制器的不同目录和命名空间
Different directories and namespaces for controllers in Phalcon
我希望能够构建一个小型应用程序(例如基本的登录 MVC 结构)并构建我的 Phalcon 项目,这样我就可以将它放在一个文件夹中并调整 config
归档一下。
例如我有根据 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
文件夹中创建一个路由文件,然后将其加载到主 bootstrap 文件中。
转移到多模块应用程序可能是个好主意。我在 Phalcon Multi-Module Routing.
解释了我是如何做到的
您可以在一个地方为您的安全模块设置所有路由、查看目录、单独配置等。
可以从您的安全基础 class 扩展,您已经从 Phalcon\Mvc\Model
扩展,所以它没有什么不同。
你可以这样做:
<?php
namespace My\Controllers;
use My\Security\Controllers\ControllerBase as SecurityBase;
class ControllerBase extends SecurityBase
{
...
我希望能够构建一个小型应用程序(例如基本的登录 MVC 结构)并构建我的 Phalcon 项目,这样我就可以将它放在一个文件夹中并调整 config
归档一下。
例如我有根据 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
文件夹中创建一个路由文件,然后将其加载到主 bootstrap 文件中。
转移到多模块应用程序可能是个好主意。我在 Phalcon Multi-Module Routing.
解释了我是如何做到的您可以在一个地方为您的安全模块设置所有路由、查看目录、单独配置等。
可以从您的安全基础 class 扩展,您已经从 Phalcon\Mvc\Model
扩展,所以它没有什么不同。
你可以这样做:
<?php
namespace My\Controllers;
use My\Security\Controllers\ControllerBase as SecurityBase;
class ControllerBase extends SecurityBase
{
...