فریم ورک Zend در هر ماژول تنظیمات طرح بندی -- پیگیری
همانطور که پیگیری به پست قبلی من در تنظیمات ماژول در هر طرح مبتنی بر برای Zend چهارچوب ، من به روز شده کد نیاز به پیکربندی کمتر از قبل از (نه که بیشتر مورد نیاز است که چند خط در تنظیمات برنامه شما!).
باز هم ما استفاده از Zend کنترل اقدام یاور آن را از پیش کشیدن خود راه انداز به شرح زیر است :
/ **
* مجموعه تا اسکریپت طرح بندی در ماژول اساس در
* /
_initLayoutHelper عملکرد حفاظت شده ()
{
این $> - خود راه انداز ('frontController') ؛
$ = طرح Zend_Controller_Action_HelperBroker : : addHelper (
Pro_Controller_Action_Helper_SetLayoutPath جدید (APPLICATION_PATH)) ؛
}
تقریبا دقیقا همان قبل از این زمان ما به جز عبور APPLICATION_PATH ثابت را به عنوان سازنده مسیر پایه ما است.
بعد یاور کنترل کننده عمل خود اکنون به نظر می رسد به شرح زیر است :
/ ** * مجموعه مسیر طرح بر اساس هر ماژول * * @ نویسنده لوید Watkin * @ از 16/02/2010 * بسته نرم افزار @ * subpackage @ Controller_Action_Helper * / / ** * مجموعه مسیر طرح بر اساس هر ماژول * * @ نویسنده لوید Watkin * @ از 16/02/2010 * بسته نرم افزار @ * subpackage @ Controller_Action_Helper * / Pro_Controller_Action_Helper_SetLayoutPath کلاس گسترش Zend_Controller_Action_Helper_Abstract { / ** * مسیر پایه * * @ متغیر رشته * / محافظت $ _path ؛ / ** * سازه * * @ $ پرم رشته راه * / عمومی تابع __construct ($ مسیر) { این $> - setBasePath ($ مسیر) ؛ } / ** * تنظیم مسیر پایه * * @ $ پرم رشته راه * / setBasePath تابع عمومی ($ مسیر) { اگر (is_string ($ مسیر) |! | خالی ($ مسیر)) { پرتاب استثنا جدید ('به استثنای رشته برای مسیر پایه') ؛ } این $> - _path = $ مسیر ؛ } / ** * دریافت مسیر پایه * * @ رشته بازگشت * / _getBasePath عملکرد حفاظت شده () { اگر (is_null ($ این -> _path)) { اگر (! تعریف ('APPLICATION_PATH')) { پرتاب استثنا جدید ('مسیر پایه را نمی توان تعیین') ؛ } این $> - _path APPLICATION_PATH = ؛ } بازگشت _path $ این -> ؛ } / ** * مجموعه مسیر طرح بر اساس ماژول * / preDispatch تابع عمومی () { $ ماژول = preg_replace ( '/ [^ الف] / من' ، ''، $ این -> getRequest () --> getModuleName () ) ؛ اگر (خود راه انداز $ = $ این -> getActionController () -- getInvokeArg> ('خود راه انداز')) { $ مشاهده = $ خودگردان -> getResource ('نمایش') ؛ $ = $ layoutPath این -> _getBasePath (). "/ ماژول ها / ماژول} {$ / پوسته / اسکریپت /" ؛ / * اگر دایرکتوری طرح وجود دارد و سپس آن را ، در غیر این صورت فقط سقوط تقاضا * پشت در پیش فرض * / اگر (is_dir ($ layoutPath)) { این $> - getActionController () -- getHelper> ('طرح') -- setLayoutPath> ($ layoutPath) ؛ $ مشاهده> headLink () --> appendStylesheet ( "/ سبک / {$ ماژول} / style.css" ) ؛ } } } }
توجه داشته باشید که عبور از مسیر پایه ما (cf. APPLICATION_PATH) در سازنده ، ما نیز برای گیرنده و توله شکاری و پشمالوی بویی مسیر پایه. بر خلاف نسخه های قبلی از کد در صورتی که مسیر پوسته وجود ندارد سپس کد سقوط خواهد کرد به عقب به طور پیش فرض مسیر طرح. اگر مسیر پایه آن تنظیم نشده است سعی خواهد کرد که مسیر پایه از APPLICATION_PATH ثابت ، در غیر این صورت این قاعده مستثنی نیست پرتاب را مشخص کند. من نیز باپررویی در یک شیوه نامه ماژول مبتنی بر اندازه گیری خوب برای پرتاب
طرح درس مبتنی بر اینکه آیا از طرح راه اسکریپت وجود دارد (بدیهی است که این روش را می توان به راحتی تغییر) تعیین می شود. این به معنی اضافه کردن یک سربار کمی از راه اندازی application.ini (البته در صورتی که راه طرح وجود دارد پی اچ پی خواهد کش نتیجه برای عملکرد *) ، اما در عوض ماژول های جدید اضافه شده به شما دست آوردن راحتی از آسان تر از در انداختن.
که در آن است ، چندان متفاوت است ، اما شما نیازی به ورود به تنظیمات جدید برای اضافه کردن هر زمانی که شما مایل به اضافه کردن یک ماژول جدید :)
* برای پاک کردن این کش (در صورت لزوم) استفاده clearstatcache تابع.


















































سلام ، لطفا به من بگویید که در آن به ایجاد Pro_Controller_Action_Helper_SetLayoutPath کلاس است که با نام پرونده
من عضو جدید در zend.
با تشکر
سلام بهرنگ ، ایجاد یاور عمل با نام هر کدام را دوست دارید ، من خود 'کتابخانه' من با فضای نام 'نرم افزار'. شما فقط می تواند به راحتی 'SetLayoutPath' کلاس تماس بگیرید و آن را که در آن یک نفر از تو می خواهم ، ارائه کد می توانید آن را پیدا کرده و شما را گسترش کلاس های مورد نیاز