Zend Framework2 - Layout配置,不同模块Module设置不同的layout
来源:互联网 发布:自动记录运动轨迹软件 编辑:程序博客网 时间:2024/05/17 20:30
想必大部分的人都是从ZendSkeletonApplication开始学习zf2的,也理所当然的认为每个module的view_manager是独立的,互补干扰的,
但是我们错了,不同module之间共用同一个view_manager配置,后来加载module的view_manager会覆盖前面加载的module的view_manager同名(即key值相同)配置,
这种设计大部分时候都没什么问题,但是layout这种配置就开始互相覆盖了,
开始介绍为不同模块配置不同的layout。
1.新建一个Test模块(将Application模块复制一份,改改相关的名字即可),
在zf2.local/module/Test/config/module.config.php的view_manager的template_map配置你module的layout路径,
代码如下:
'view_manager' => array(
'template_map' => array(
'test/layout' => __DIR__ . '/../view/test/layout/layout.phtml',
),
'template_path_stack' => array(
'test'=>__DIR__ . '/../view/'
),
)
2.修改zf2.local/module/Test/Module.php的class Module如下
class Module{
public function onBootstrap(MvcEvent $mvcEvent) {
$eventManager = $mvcEvent->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager); // Register a dispatch event
$application = $mvcEvent->getParam('application');
$application->getEventManager()->attach('dispatch', array($this, 'setLayout'));
}
/**
* @param/Zend/Mvc/MvcEvent $mvcEvent The MvcEvent instance
* @return void
*/
public function setLayout($mvcEvent) {
$matches = $mvcEvent->getRouteMatch();
$controller = $matches->getParam('controller');
if (false === strpos($controller, __NAMESPACE__)) {
// not a controller from this module
return false;
}
// Set the layout template
$viewModel = $mvcEvent->getViewModel();
$viewModel->setTemplate('test/layout');
}
public function getConfig() {
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig() {
return array(
'Zend/Loader/StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}
但是我们错了,不同module之间共用同一个view_manager配置,后来加载module的view_manager会覆盖前面加载的module的view_manager同名(即key值相同)配置,
这种设计大部分时候都没什么问题,但是layout这种配置就开始互相覆盖了,
开始介绍为不同模块配置不同的layout。
1.新建一个Test模块(将Application模块复制一份,改改相关的名字即可),
在zf2.local/module/Test/config/module.config.php的view_manager的template_map配置你module的layout路径,
代码如下:
'view_manager' => array(
'template_map' => array(
'test/layout' => __DIR__ . '/../view/test/layout/layout.phtml',
),
'template_path_stack' => array(
'test'=>__DIR__ . '/../view/'
),
)
2.修改zf2.local/module/Test/Module.php的class Module如下
class Module{
public function onBootstrap(MvcEvent $mvcEvent) {
$eventManager = $mvcEvent->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager); // Register a dispatch event
$application = $mvcEvent->getParam('application');
$application->getEventManager()->attach('dispatch', array($this, 'setLayout'));
}
/**
* @param/Zend/Mvc/MvcEvent $mvcEvent The MvcEvent instance
* @return void
*/
public function setLayout($mvcEvent) {
$matches = $mvcEvent->getRouteMatch();
$controller = $matches->getParam('controller');
if (false === strpos($controller, __NAMESPACE__)) {
// not a controller from this module
return false;
}
// Set the layout template
$viewModel = $mvcEvent->getViewModel();
$viewModel->setTemplate('test/layout');
}
public function getConfig() {
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig() {
return array(
'Zend/Loader/StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
}
然后就可以达到不同module使用不同layout。
0 0
- Zend Framework2 - Layout配置,不同模块Module设置不同的layout
- zend framework2-不同模块设置不同layout
- zend framework2 中不同模块使用不同layout的方法
- zend framework2-在controller-action设置layout布局视图变量
- Zend Framework2(zf2) 在不同模块中调用全局配置方法
- zend framework多模块多Layout配置
- zend framework多模块多Layout配置
- ListView的不同item加载不同Layout
- ListView的不同item加载不同Layout
- PADS 9.5 layout 设置不同过孔 网路的颜色
- 为横竖屏切换配置不同的layout
- zend framework2 查询语句数据库不同的问题
- listview不同的项目布局(item layout)
- PullToRefreshListView适配器加载不同的layout
- Zend layout
- ListView不同的项目布局(item layout)的实现
- 根据屏幕大小显示不同的layout下的界面
- 适应不同分辨率屏幕的问题 android layout
- 亲和数
- 前k小的数求法
- android 定时器
- 不使用sizeof求一个变量的大小
- IF-ERRORLEVEL使用方法
- Zend Framework2 - Layout配置,不同模块Module设置不同的layout
- Latex论文编写教程 计算机相关专业论文编写指南
- 默认EditTextView不自动获取焦点的方法
- 先学习搭建个架子:Eclipse java EE版 + S2SH + Oracle11g + Plsql.(3)
- 排序算法--希尔排序(JAVA)
- 深入理解DB2索引(Index)
- Android学习笔记(基础)之数据存储(一)
- fedora源码编译arm-qte-4.8.5
- MPI实现并行计算统计数据