به عنوان یک پیگیری به پست قبلی من در تنظیمات هر ماژول طرح های مبتنی بر چارچوب Zend ، من کد نیاز به پیکربندی کمتر از قبل (که نه از آن مورد نیاز است که چند خط در تنظیمات نرم افزار خود را) به روز شده است.
ادامه چارچوب 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 "/ ماژول / وابسته / پوسته ها / اسکریپت ها"
- ایجاد یاور اقدام شما:
<؟ پی اچ پی
/ **
* مجموعه مسیر طرح در پایه هر ماژول
*
* @ نویسنده لوید Watkin <lloyd@evilprofessor.co.uk>
* @ از 2010/01/01
* /
کلاس Pro_Controller_Action_Helper_SetLayoutPath
گسترش Zend_Controller_Action_Helper_Abstract
{
/ **
* مجموعه مسیر طرح بر اساس ماژول
* /
عمومی preDispatch تابع ()
{
$ ماژول => getRequest () -> getModuleName ()؛
اگر (خود راه انداز = $> getActionController ()
-> getInvokeArg (خود راه انداز ")) {
$ پیکربندی = $ خود راه انداز-> getOptions ها ()؛
اگر (isset ($ پیکربندی [ماژول] ['منابع'] ['طرح'] ['layoutPath'])) {
$ layoutPath می شود =
$ پیکربندی [ماژول] ['منابع'] ['طرح'] ['layoutPath']؛
این $> getActionController ()
-> getHelper ('طرح')
-> setLayoutPath (layoutPath دلار)؛
}
}
}
} - و در آخر اقدام کمکی boostrap:
...
/ **
* مجموعه اسکریپت طرح بر اساس یک ماژول در هر
* /
_initLayoutHelper حفاظت شده تابع ()
{
این خود راه انداز ('frontController')؛
دلار طرح = Zend_Controller_Action_HelperBroker :: addHelper (
جدید Pro_Controller_Action_Helper_SetLayoutPath ())؛
}
...