Zend Framework מודול מבוסס הגדרות-Per

לפי ווטקין לויד סטיבן , יום שישי 1 ינואר 2010 22:40

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

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

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

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

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

4 תגובות ל "הגדרות Zend Framework מבוססת Per-Module"

  1. Behrang אומר:

    היי תודה הראשון שלך מועיל הדרכה אבל תגיד לי איפה אני יוצר עוזר פעולה עם שם הקובץ מכשפה?
    behrang

  2. היי Behrang, ליצור את עוזר פעולה עם לפי השם שאתה אוהב, יש לי "הספריה" שלי עם מרחב "המקצוענים". אתה יכול בקלות לקרוא "SetLayoutPath" המעמד ולשים אותו בכל מקום שבו אתה רוצה, בתנאי הקוד יכול למצוא אותו ואתה להאריך את השיעורים הנדרשים

  3. kanth Shashi אומר:

    היי, iam מבולבל עם הגדרת מודול הגדרות מסד נתונים ספציפיים ... למישהו יש רעיון?

  4. אני חושב שזה יכול בקלות להיות מושגת usign את הדפוס הנ"ל. ראשית, ליצור אפשרויות בקובץ ini שלך לאורך של קבצים:

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... וכו '...

    ואז פשוט ליצור חיבור מסד הנתונים שלך כפי שאתה רואה לנכון (Zend_Db:: המפעל () או דומה) ואת סליק אותו ברישום או להגדיר את זה בתור מתאם ברירת המחדל אם באמצעות Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

השאירו תגובה













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

7 מבקרים מקוון עכשיו
5 אורחים, 2 בוטים, 0 חברים
מקס מבקרים היום: 14 בשעה 07:34 UTC
החודש: 26 ב 2011/07/05 12:35 UTC
השנה: 130 ב 28-03-2011 22:40 UTC
כל הזמן: 130 ב 28-03-2011 10:40 UTC