הודעות מתויג: layoutPath

Zend מסגרת לכל מודול הגדרות המבוססות על

על ידי , יום שישי 1 ינואר 2010 22:40

יצרתי לרשומה זו המחייבת תצורה פחות, ראה פריסת מודול מבוסס - Zend Framework .

בעת שימוש במסגרת Zend עם מודולים, שאם אתה מפעיל השונים (משנה) את אתרי היישום אותו אתה לא בהכרח רוצה את אותם הברורים סקריפטים הפריסה עבור כל חלק. החלטתי ללכת עם מבנה האתר הבאה:

  / Application
     / בקרים
         ...
     / מודלים
     / מודולים
         / Default
             / בקרים
             / פריסה
                 / תסריטים
             / נופים
                 / תסריטים
         / AnotherModule
             ...
     / תסריטים

הבעיה היתה להקים את הסקריפטים הפריסה על בסיס לכל מודול. התשובה הגיעה דרך באמצעות עוזר פעולה. הגדרת את הפריסות על בסיס לכל מודול כרוכה בשלושה שלבים:

  1. 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 =" / מודולים / שותפים / פריסות / סקריפטים " 
  2. צור עוזר הפעולה שלך:
      <? 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);
    	         }
        	 }
         }
     } 
  3. ולבסוף boostrap עוזר פעולה:
      ...
         / **
          * מגדיר סקריפטים הפריסה על בסיס לכל מודול
          * /
         מוגן פונקציה _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ("frontController ');
    	     פריסת $ = Zend_Controller_Action_HelperBroker :: addHelper (
    	         חדש Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












פנורמה נושאים על ידי Themocracy

3 מבקרים מקוון עכשיו
2 אורחים, 1 בוטים, 0 משתמשים
מקס מבקרים היום: 56 בשעה 08:41 בבוקר UTC
החודש: 56 25-04-2012 בשעה 08:41 בבוקר UTC
השנה: 69 ב 27-02-2012 9:56 בבוקר UTC
כל הזמן: 130 ב 28-03-2011 10:40 UTC