Zend מסגרת לכל מודול הגדרות המבוססות על
יצרתי לרשומה זו המחייבת תצורה פחות, ראה פריסת מודול מבוסס - Zend Framework .
בעת שימוש במסגרת Zend עם מודולים, שאם אתה מפעיל השונים (משנה) את אתרי היישום אותו אתה לא בהכרח רוצה את אותם הברורים סקריפטים הפריסה עבור כל חלק. החלטתי ללכת עם מבנה האתר הבאה:
/ Application / בקרים ... / מודלים / מודולים / Default / בקרים / פריסה / תסריטים / נופים / תסריטים / AnotherModule ... / תסריטים
הבעיה היתה להקים את הסקריפטים הפריסה על בסיס לכל מודול. התשובה הגיעה דרך באמצעות עוזר פעולה. הגדרת את הפריסות על בסיס לכל מודול כרוכה בשלושה שלבים:
- Application.ini (או הגדרת תצורה דומה):
admin.resources.layout.layoutPath APPLICATION_PATH = "/ מודולים / admin / / פריסות סקריפטים" default.resources.layout.layoutPath APPLICATION_PATH = "/ מודולים / default / פריסות / סקריפטים" member.resources.layout.layoutPath APPLICATION_PATH = "/ מודולים / / חבר / פריסות סקריפטים "affiliate.resources.layout.layoutPath APPLICATION_PATH =" / מודולים / שותפים / פריסות / סקריפטים " - צור עוזר הפעולה שלך:
<? Php / ** * מגדיר את הנתיב הפריסה על בסיס לכל מודול * * @ מחבר לויד ווטקין <lloyd@evilprofessor.co.uk> * @ מאז 2010/01/01 * / בכיתה Pro_Controller_Action_Helper_SetLayoutPath מרחיב Zend_Controller_Action_Helper_Abstract { / ** * סטים פריסת נתיב מבוסס על מודול * / פונקציה preDispatch הציבור () { מודול $ = $ this-> getRequest () -> getModuleName (); אם ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ("bootstrap")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ מודול] ['משאבים'] ['פריסה'] ['layoutPath'])) { $ LayoutPath = [מודול $] $ config ['משאבים'] ['פריסה'] ['layoutPath']; $ This-> getActionController () -> GetHelper ("פריסה") -> SetLayoutPath ($ layoutPath); } } } }
- ולבסוף boostrap עוזר פעולה:
... / ** * מגדיר סקריפטים הפריסה על בסיס לכל מודול * / מוגן פונקציה _initLayoutHelper () { $ This-> bootstrap ("frontController '); פריסת $ = Zend_Controller_Action_HelperBroker :: addHelper ( חדש Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































