带有Phalcon PHP框架的嵌套多模块应用程序



我知道phalcon的多模块应用结构,但是是否可以像以下示例一样具有嵌套的模块结构?我想拥有一个系统,可以在其中将新的子模块(用于后端,前端)热插入系统。当我将新的模块文件夹复制到子模块文件夹中时,路线,菜单条目等应自动扩展。

module-backend
    controllers
    models etc.
    sub-modules
        forum
            controllers
            models
            etc.
        news
            controllers
            models
            etc.
        users
            controllers
            models
            etc.
module-frontend
    controllers
    models
    sub-modules
        like backend module structure

有没有将此类模块热插入系统的事件?

是的。我能想到的第一个解决方案是:

在index.php中注册加载程序时:

$loader = new PhalconLoader();
$loader->registerDirs(array(
    $config->application->controllersDir,
    $config->application->pluginsDir,
));
$loader->registerPrefixes(
        array(
            "Model_" => $config->application->modelsDir,
        )
);
$loader->registerNamespaces(array(
    'RemoteApi' => $config->application->librariesDir . 'RemoteApi/'
));
$loader->register();

通知寄存器装置。您可以为不同型号注册不同的前缀:

$loader->registerPrefixes(
            array(
                "FModel_" => $config->application->forumModels,
                "NModel_" => $config->application->newsModels,
            )
);

您也可以注册其他内容的前缀。我还添加了这个示例

$loader->registerNamespaces(array(
    'RemoteApi' => $config->application->librariesDir . 'RemoteApi/'
));

这样,您可以在不同的名称空间下订购东西。

您可以在应用程序中处理我的模块的组织结构:https://github.com/oleksandr-torosh/yona-cms

这些模块作为单独的实体表示:https://github.com/oleksandr-torosh/yona-cms/tree/master/app/modules

  • 索引
  • 项目
  • 视频

可能是您的应用程序,您无需从框中使用标准的多模块化结构

最新更新