मैं दो कारणों के लिए Zend_Registry है और न ही स्थिरांक का उपयोग नहीं होता
- रजिस्ट्री में आप कभी भी सुनिश्चित नहीं हैं कि चर के साथ क्या हुआ। आवेदन के हर हिस्से में उन्हें बदल सकते हैं और आपको ध्यान नहीं दिया जाएगा। मैं रजिस्ट्री को वास्तव में एक एनीट-पैटर्न के रूप में देखता हूं।
- कॉन्स्टेंट आपके एप्लिकेशन को अनावश्यक रूप से प्रदूषित कर रहे हैं। क्या होगा यदि आप प्रत्येक कॉन्फ़िगरेशन के लिए कुछ निरंतर उपयोग करते हैं? आपको परिभाषित सभी स्थिरांक के साथ एक अतिरिक्त दस्तावेज़ रखना है, यह बनाए रखने के लिए भयानक है।
सबसे अच्छा विकल्प क्या है, सीधे बूटस्ट्रैप से कॉन्फ़िगर ऑब्जेक्ट प्राप्त करना है। अगले उदाहरणों में, मुझे लगता है आप अपनी application.ini में यह है:
someservice.apikey = 12345678
someservice.passkey = 87654321
बूटस्ट्रैप frontController में पैरामीटर के रूप में सेट है। आप एक कार्रवाई नियंत्रक है, तो यह यह के रूप में इस के रूप में सरल बनाता है:
$serviceOptions = $this->getInvokeArg('bootstrap')->getOption('someservice');
आप एक सेवा के लिए अपने नियंत्रक में instantiated है, तो आप अब उन पर निर्माता और/या सेटर के माध्यम से पारित कर सकते हैं।
यदि आप अपने नियंत्रक के भीतर विकल्प नहीं प्राप्त करना चाहते हैं, लेकिन कहीं और, आप सिंगलटन पैटर्न को फ्रंटकंट्रोलर उपकरण का उपयोग कर सकते हैं।किसी भी स्थान पर तो (जाहिर है केवल, भेजने नहीं बूटस्ट्रैप के दौरान ही के दौरान) यदि आप ऐसा करने में समर्थ हैं: उपरोक्त विधि के साथ
$frontController = Zend_Controller_Front::getInstance();
$serviceOptions = $frontController->getParam('bootstrap')
->getOption('someservice');
आप कर रहे हैं सुरक्षित आप हमेशा सही विन्यास विकल्प और नहीं कुछ संभवतः है एक उत्परिवर्तित।
स्रोत
2011-10-17 09:09:25
कॉन्फ़िगरेशन फ़ाइलों का उपयोग पैरामीटर निर्दिष्ट करने के लिए किया जाता है, जो आपके ऐप के इनपुट के रूप में उपयोग किए जाते हैं lication। PHP ग्लोबल्स का उपयोग करने पर आपको प्रोग्रामेटिक रूप से – Phil