如何使用數據庫 我模塊的配置文件 想,在我的應用程序的一些點在列表中禁用ZF2的特定模塊,讀取與表模塊的名稱,並禁止他們在我的情況已檢舉爲禁用數據庫如何在Zend框架禁用特定模塊2動態
我使用Doctrine2作爲我的數據庫
如何使用數據庫 我模塊的配置文件 想,在我的應用程序的一些點在列表中禁用ZF2的特定模塊,讀取與表模塊的名稱,並禁止他們在我的情況已檢舉爲禁用數據庫如何在Zend框架禁用特定模塊2動態
我使用Doctrine2作爲我的數據庫
Vincent Blanchon的延遲加載模塊管理器可能是解決您的問題。它允許條件啓用或禁用模塊。
的application.config.php
是由ZF2引導加載的第一要素之一,被傳遞到ServiceManager
所有模塊(和負載)都列在application.config.php
中。在這一點上,沒有加載教條(所以你不能用一個運行zend框架的腳本來檢查一個模塊是否在你的數據庫中「激活」)。
當您檢查public/index.php
您可以看到自舉開始
//運行應用程序就行了! (運行需要'config/application.config.php') - > run();這樣就可以使用Zend \ Mvc \ Application :: init了。
這是你的地步,你的邏輯應該被執行(建立一個數據庫連接,創建一個應用程序配置),並把它傳遞給init()
方法。
但這不是一個好主意,因爲你需要指定一個數據庫連接,設置數據庫密碼等等,並且「以你自己的方式沒有zf2」。
當你動態地禁用模塊時,我認爲你做了某些「錯誤」的事情,因爲你需要一個模塊,或者你不需要 - 在開發環境中啓用模塊並在你的實時環境中禁用模塊。簡單,因爲它
我有更好的方式來做到這一點
只需加載
在application.config.php在應用程序配置文件中只應用模塊
'modules' => array(
'DoctrineModule',
'DoctrineORMModule',
'Application',
),
然後寫application/module.php中的一個方法,叫做
public function init(ModuleManager $moduleManager) {
$moduleManager->loadModule('xyz'); // xyz module will be fetched from db here or depend on you logic.
}
現在你的模塊被你的數據庫加載。
問題是我需要開發一個模塊管理器,可以選擇在我的儀表板中安裝或不安裝一個或多個模塊,就像wordpress的擴展管理器一樣,還有另一種方法可以做到這一點嗎? – IgorHerson
就像我在magento中指出的那樣,除了正常的應用程序,模塊管理器是一個完全獨立的站點。一個應用程序控制另一個應用程序的擴展。像''composer''。 – ins0
有趣的,你能解釋我更好嗎? – IgorHerson