2014-02-05 61 views
0

我正在嘗試框架ZF2,我試圖做非常獨立的模塊,比如SF2中的bundle。與ZF2衝突佈局具有相同的名稱

我已經有ZfcTwig Twig來呈現我的意見。這工作,直到我創建了第二個模塊。

-Application (default module) 
-Admin 
    -view 
    index.twig 
    -layout 
    base.twig 
-Blog 
    -view 
    index.twig 
    -layout 
    base.twig 

問題是,我的博客佈局擴展了管理員基本佈局,然後!

我已經做了基於http://blog.evan.pro/module-specific-layouts-in-zend-framework-2

所以在這兩個Module.php我的結構佈局,我這樣的:

public function init($moduleManager) 
{ 
    $sharedEvents = $moduleManager->getEventManager()->getSharedManager(); 
    $sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) { 
     $controller = $e->getTarget(); 
     $controller->layout('layout/base.twig'); 
    }, 100); 
} 

另外,我不明白爲什麼我已經定義了兩次佈局,一次在Module.php的init函數中,第二次在twig視圖的擴展函數中使用。

肯定它的工作,如果我有不同的名字。

我看到這個模塊:https://github.com/EvanDotPro/EdpModuleLayouts 但我認爲應該有可能沒有這個真正獨立的模塊,因爲它的框架的哲學。

回答

0

默認情況下,ZfcTwig以「zf方式」工作,使用兩步查看模式。 如果你想使用原始樹枝系統(擴展),你必須在你的配置文件中指定它。

它有很好的註釋:

/** 
* If set to true disables ZF's notion of parent/child layouts in favor of 
* Twig's inheritance model. 
*/ 
     'disable_zf_model' => true, 

這樣一來,你就控制你要跟佈局與extends指令。

+0

它已經在默認情況下,我已經看到這條線,所以我不明白爲什麼我不能直接控制枝條 –

+0

我不使用它的「枝條方式」,但我認爲,如果這是你的情況,那麼改變Module.php中的佈局是沒有用的。枝條的「延伸」指令是將要使用的指令。我認爲這與view_manager配置的template_map有關。如果名稱相同,則它將解析爲在合併配置中找到的最後一個文件。 – jmleroux