Zend फ्रेमवर्क प्रति मॉड्यूल आधारित सेटिंग्स

द्वारा स्टीवन लॉयड Watkin , शुक्रवार 1 जनवरी 2010 22:40

मैं कम विन्यास की आवश्यकता है जो पद दिया बनाया एक इस follow-up करने के लिए, कृपया देखें मॉड्यूल आधारित लेआउट - Zend फ्रेमवर्क .

जब उपयोग Zend फ्रेमवर्क स्पष्ट साथ मॉड्यूल, इसके कि यदि आप विभिन्न चल रहे हैं (उप) साइटों आवेदन बंद ही आप वही करना चाहती जरूरी नहीं कि लेआउट लिपियों भाग के लिए प्रत्येक. मैं निम्नलिखित साइट संरचना के साथ जाने का फैसला किया:

  / अनुप्रयोग
     / नियंत्रकों
         ...
     / मॉडल
     / मॉड्यूल
         डिफाल्ट
             / नियंत्रकों
             / लेआउट
                 / लिपियों
             / विचारों
                 / लिपियों
         / AnotherModule
             ...
     / लिपियों

समस्या को स्थापित किया गया था एक प्रति मॉड्यूल के आधार पर लेआउट लिपियों. जवाब एक कार्य हेल्पर का उपयोग कर के माध्यम से आया था. एक प्रति मॉड्यूल के आधार पर लेआउट स्थापना तीन कदम शामिल है:

  1. Application.ini (या इसी तरह विन्यास सेटअप):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / व्यवस्थापक / लेआउट / लिपियों"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ लिपियों / / लेआउट डिफ़ॉल्ट / मॉड्यूल"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ लिपियों / / लेआउट सदस्य / मॉड्यूल"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ लिपियों / / लेआउट सहबद्ध / मॉड्यूल" 
  2. अपनी लड़ाई हेल्पर बनाएँ:
      <? Php
     ** /
      * प्रति एक मॉड्यूल के आधार पर लेआउट पथ सेट
      *
      * @ लेखक लॉयड Watkin <lloyd@evilprofessor.co.uk>
      2010/01/01 @ के बाद *
      * /
     वर्ग Pro_Controller_Action_Helper_SetLayoutPath
         Zend_Controller_Action_Helper_Abstract फैली
     {
         ** /
          * सेट लेआउट पर आधारित पथ का मॉड्यूल
          * /
         सार्वजनिक समारोह preDispatch ()
         {
        	 मॉड्यूल $ = इस-> ($) getRequest -> getModuleName ();
    
    	     अगर ($ = इस bootstrap-> ($ getActionController)
    	                        -> GetInvokeArg ('बूटस्ट्रैप')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         अगर (isset ($ config [$ मॉड्यूल] ['संसाधनों'] ['लेआउट'] ['layoutPath'])) {
    	             layoutPath $ =
    	                  विन्यास [$ मॉड्यूल] ['संसाधनों'] ['लेआउट'] ['layoutPath'] $;
    	             इस-> $ getActionController ()
    	                  -> GetHelper ('लेआउट')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. और अंत में कार्रवाई सहायक बूटस्ट्रैप:
      ...
         ** /
          * एक प्रति मॉड्यूल के आधार पर लेआउट लिपियों समूह
          * /
         संरक्षित समारोह _initLayoutHelper ()
    	 {
    	     इस-> $ बूटस्ट्रैप ('frontController');
    	     $ लेआउट = Zend_Controller_Action_HelperBroker: addHelper (
    	         नई Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

के लिए "Zend फ्रेमवर्क प्रति मॉड्यूल आधारित सेटिंग्स" 4 जवाब

  1. Behrang कहते हैं:

    हाय के लिए पहले धन्यवाद आपके मददगार ट्यूटोरियल, लेकिन मुझे बताओ मैं कहाँ डायन फ़ाइल नाम के साथ कार्रवाई सहायक बना?
    behrang

  2. स्टीवन लॉयड Watkin कहते हैं:

    हाय Behrang, नाम जो भी तुम्हें पसंद है, मैं अपने namespace 'प्रो' के साथ ही 'पुस्तकालय' के साथ कार्रवाई सहायक बना. तुम बस के रूप में आसानी वर्ग 'SetLayoutPath' कॉल कर सकता है और इसे रखा है जहाँ आप की तरह कभी, कोड इसे पा सकते हैं प्रदान की है और आप आवश्यक वर्गों का विस्तार

  3. शशि कांत का कहना है:

    हाय, ऊपर मॉड्यूल विशेष डेटाबेस सेटिंग्स सेटिंग के साथ भ्रमित iam ... किसी एक विचार है?

  4. स्टीवन लॉयड Watkin कहते हैं:

    मुझे लगता है कि यह आसानी से ऊपर पैटर्न usign हासिल किया जा सकता है. सबसे पहले, अपने ini फ़ाइल में फ़ाइलों के साथ विकल्प बनाने के लिए:

    = ModuleName.db.user "
    = ModuleName.db.password "
    = ModuleName2.db.user "
    ... आदि ...

    तो बस अपने डेटाबेस कनेक्शन उत्पन्न के रूप में आप फिट देख (Zend_Db: () कारखाने या समान) और यह रजिस्ट्री में दूर छिपाने की जगह या इसे डिफ़ॉल्ट अनुकूलक यदि Zend_Db_Table का उपयोग कर के रूप में सेट (Zend_Db_Table: setDefaultAdapter ()).

एक उत्तर दें छोड़ दो













पैनोरमा थीम द्वारा Themocracy

अब 9 आगंतुकों ऑनलाइन
7 मेहमानों, 2 बॉट, 0 सदस्यों
अधिकतम आगंतुकों आज: 11 12:07 पर हूँ UTC
इस माह: 2011/07/05 26 12:35 UTC हूँ
इस वर्ष: 10:40 130 पर 28-03-2011 दोपहर UTC
सब समय: 10:40 130 पर 28-03-2011 दोपहर UTC