Zend框架的每个模块的设置
我创建了一个后续这一职位的要求较少的配置,请参阅模块的布局- Zend框架 。
当使用Zend框架的模块,其明显的,如果你运行的各个(分)网站关闭同一个应用程序,你不一定需要同样的布局脚本的每个部分。 我决定去以下网站结构:
/应用 /控制器 ... /模型 /模块 /默认 /控制器 /布局 /脚本 /意见 /脚本 / anotherModule ... /脚本
问题是建立在每个模块的基础上布局脚本。 这句话通过使用一个动作助手。 设置在每个模块的基础上的布局包括三个步骤:
- 的application.ini(或类似的配置设置):
admin.resources.layout.layoutPath = APPLICATION_PATH“/模组/管理/布局/脚本” default.resources.layout.layoutPath = APPLICATION_PATH“/模组/预设/布局/脚本” member.resources.layout.layoutPath = APPLICATION_PATH“/模组/会员/布局/脚本” affiliate.resources.layout.layoutPath = APPLICATION_PATH“/模组/附属/布局/脚本”
- 创建你的动作助手:
<?PHP的 / ** *设置对每个模块的基础上布局路径 * * @作者劳埃德沃特<lloyd@evilprofessor.co.uk> * @自2010年1月1日 * / 类Pro_Controller_Action_Helper_SetLayoutPath 延伸Zend_Controller_Action_Helper_Abstract { / ** *设置布局的基础上的模块路径 * / 公共职能preDispatch()在 { 这个模块= $ $ -> getRequest() - >“getModuleName(); 如果($引导= $此-> getActionController() - >“getInvokeArg('引导')){ = $ $配置引导-> getOptions(); 如果(使用isset($配置[$模块] ['资源'] ['布局'] ['layoutPath'])){ = $ layoutPath 配置$ [$模块] ['资源'] ['布局'] ['layoutPath']; $这个-> getActionController() - >“getHelper('布局') - >“setLayoutPath($ layoutPath); } } } }
- 最后自举的动作助手:
... / ** *设置上每个模块的基础布局脚本 * / 保护功能_initLayoutHelper() { $这个->引导('frontController'); $布局= Zend_Controller_Action_HelperBroker::addHelper( 新Pro_Controller_Action_Helper_SetLayoutPath()); } ...


















































首先感谢您对你好,但有用的教程告诉我在哪里创建行动与巫婆的文件名助手?
behrang
嗨Behrang,创建具有任何你喜欢的名字,我有我自己的'图书馆'命名空间'临'行动帮手。 你可以很容易地调用类的SetLayoutPath'并把它放在任何你喜欢,提供的代码,你可以找到它所需的类扩展
嗨,亚姆与特定的数据库建立模块设置混乱...没有任何人有一个想法?
我觉得这可能很容易地实现usign上述模式。 首先,创建在您的INI文件选项沿文件:
moduleName.db.user =“
moduleName.db.password =“
moduleName2.db.user =“
等等... ...
然后,只需生成数据库连接您认为合适的(Zend_Db的::工厂()或类似的)和藏在注册表中离开或设置为默认的适配器使用的Zend_Db_Table如果它(的Zend_Db_Table::setDefaultAdapter()来)。