2014-02-05 58 views
2

我知道Phalcon的多模塊應用程序結構,但有可能像下面的例子一樣具有嵌套的模塊結構嗎?我想有一個系統,在那裏我可以將新的子模塊(用於後端,前端)熱插入系統。當我將一個新的模塊文件夾複製到子模塊文件夾中時,路徑,菜單條目等應該自動擴展。使用Phalcon PHP框架嵌套的多模塊應用程序?

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 

有沒有辦法用事件來熱插拔這樣的模塊到系統?

+0

使用標準多模塊化結構,我認爲最起碼你要做的就是與邏輯來定製你的路由器。我認爲針對多模塊應用程序的建議方法是將所有模塊放在頂層(例如後端和前端)。 –

回答

7

是的,你可以。我能想到的第一個解決方案是這樣的:

在註冊您的裝載機在index.php文件:

$loader = new \Phalcon\Loader(); 
$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(); 

通知registerPrefixes。您可以爲不同型號註冊不同的前綴,如:

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

您也可以爲其他東西註冊前綴。我也加了這個例子

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

這樣你可以在不同的命名空間下命令你的東西。

相關問題