我正在尝试使用ZF2框架,并尝试在SF2中执行非常独立的模块,例如bundle。
我有ZfcTwig有Twig来渲染我的观点。这一直有效,直到我创建了第二个模块。
-Application (default module)
-Admin
-view
index.twig
-layout
base.twig
-Blog
-view
index.twig
-layout
base.twig
问题是我的Blog布局扩展了Admin基础布局!
我已根据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 :(得分: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
说明控制您的布局。