Zend फ्रेमवर्क प्रति मॉड्यूल आधारित सेटिंग्स
मैं कम विन्यास की आवश्यकता है जो पद दिया बनाया एक इस follow-up करने के लिए, कृपया देखें मॉड्यूल आधारित लेआउट - Zend फ्रेमवर्क .
जब उपयोग Zend फ्रेमवर्क स्पष्ट साथ मॉड्यूल, इसके कि यदि आप विभिन्न चल रहे हैं (उप) साइटों आवेदन बंद ही आप वही करना चाहती जरूरी नहीं कि लेआउट लिपियों भाग के लिए प्रत्येक. मैं निम्नलिखित साइट संरचना के साथ जाने का फैसला किया:
/ अनुप्रयोग / नियंत्रकों ... / मॉडल / मॉड्यूल डिफाल्ट / नियंत्रकों / लेआउट / लिपियों / विचारों / लिपियों / AnotherModule ... / लिपियों
समस्या को स्थापित किया गया था एक प्रति मॉड्यूल के आधार पर लेआउट लिपियों. जवाब एक कार्य हेल्पर का उपयोग कर के माध्यम से आया था. एक प्रति मॉड्यूल के आधार पर लेआउट स्थापना तीन कदम शामिल है:
- 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 "/ लिपियों / / लेआउट सहबद्ध / मॉड्यूल"
- अपनी लड़ाई हेल्पर बनाएँ:
<? 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); } } } }
- और अंत में कार्रवाई सहायक बूटस्ट्रैप:
... ** / * एक प्रति मॉड्यूल के आधार पर लेआउट लिपियों समूह * / संरक्षित समारोह _initLayoutHelper () { इस-> $ बूटस्ट्रैप ('frontController'); $ लेआउट = Zend_Controller_Action_HelperBroker: addHelper ( नई Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































हाय के लिए पहले धन्यवाद आपके मददगार ट्यूटोरियल, लेकिन मुझे बताओ मैं कहाँ डायन फ़ाइल नाम के साथ कार्रवाई सहायक बना?
behrang
हाय Behrang, नाम जो भी तुम्हें पसंद है, मैं अपने namespace 'प्रो' के साथ ही 'पुस्तकालय' के साथ कार्रवाई सहायक बना. तुम बस के रूप में आसानी वर्ग 'SetLayoutPath' कॉल कर सकता है और इसे रखा है जहाँ आप की तरह कभी, कोड इसे पा सकते हैं प्रदान की है और आप आवश्यक वर्गों का विस्तार
हाय, ऊपर मॉड्यूल विशेष डेटाबेस सेटिंग्स सेटिंग के साथ भ्रमित iam ... किसी एक विचार है?
मुझे लगता है कि यह आसानी से ऊपर पैटर्न usign हासिल किया जा सकता है. सबसे पहले, अपने ini फ़ाइल में फ़ाइलों के साथ विकल्प बनाने के लिए:
= ModuleName.db.user "
= ModuleName.db.password "
= ModuleName2.db.user "
... आदि ...
तो बस अपने डेटाबेस कनेक्शन उत्पन्न के रूप में आप फिट देख (Zend_Db: () कारखाने या समान) और यह रजिस्ट्री में दूर छिपाने की जगह या इसे डिफ़ॉल्ट अनुकूलक यदि Zend_Db_Table का उपयोग कर के रूप में सेट (Zend_Db_Table: setDefaultAdapter ()).