आप अपनी खुद की लाइब्रेरी में कार्रवाई सहायकों रख सकते हैं। पुस्तकालय/ज़ेंड के अलावा जहां सभी ज़ेंड सामान आसपास हैं, आप एक लाइब्रेरी/MyLibrary फ़ोल्डर बना सकते हैं (MyLibrary मनमाने ढंग से चुना गया है) और वहां एक्शन हेल्पर्स डालें।
एक अच्छी जगह लाइब्रेरी/MyLibrary/नियंत्रक/एक्शन/हेल्पर फ़ोल्डर है जिसे आपको अपने एक्शन हेल्पर बनाने या रखने के लिए आवश्यक है (यानी Navigation.php)। इस फ़ाइल में, वर्ग MyLibrary_Controller_Action_Helper_Navigation
बनाएं।
अगला चरण बूटस्ट्रैप के दौरान ज़ेंड फ्रेमवर्क के हेल्पर ब्रोकर में एक्शन हेल्पर जोड़ना है। इसलिए, इस समारोह अपने Bootstrap.php फ़ाइल में एक नई विधि बना सकते हैं और जोड़ें:
protected function _initActionHelpers()
{
Zend_Controller_Action_HelperBroker::addHelper(
new MyLibrary_Controller_Action_Helper_Navigation()
);
}
एक आखिरी टिप्पणी आप अपने application.ini में इस नियम से जोड़कर इस पुस्तकालय के उपयोग विन्यस्त करने की जरूरत है:
autoLoaderNameSpaces[] = "MyLibrary_"
स्रोत
2011-01-15 18:38:37
छोटा नोट, चूंकि आप 'APPLICATION_PATH' के साथ पथ शुरू कर रहे हैं, इसलिए आपके'/एप्लिकेशन/नियंत्रक/हेल्पर्स 'शुरुआत में '/ application' के बिना' नियंत्रक/सहायक 'होना चाहिए। साथ ही मुझे यह भी पता चला है कि उपसर्ग 'Application_Controller_Helper_'' को भौतिक फ़ोल्डर संरचना से मेल खाना जरूरी नहीं है। यदि आप उपसर्ग (दूसरा पैरामीटर) को 'Blabla_' के रूप में सेट करते हैं, तब तक जब तक एक्शन हेल्पर कक्षाएं केवल' Blabla_Helpername' के साथ शुरू होती हैं, यह काम करती है। इससे कक्षा के नामों में कटौती करने में मदद मिलती है यदि यह आपके लिए महत्वपूर्ण है। और निश्चित रूप से एक अच्छे जवाब के लिए +1। – jblue
डी ओह! आप सही हैं: 'application' पथ पहले से ही APPLICATION_PATH में शामिल है। माफ़ कीजिये। मेरा जवाब सुधारना इसके अलावा, निश्चित रूप से आप सही हैं: चूंकि आप 'addPath()' कॉल में मैपिंग को परिभाषित कर सकते हैं, तो आप अपने इच्छित लगभग किसी भी नामनाम का उपयोग कर सकते हैं। मैं अपनी लाइब्रेरी नेमस्पेस में ज़ेंड संरचना की नकल करता हूं, भले ही वे थोड़े लंबे हों। उदाहरण के लिए, मैं आमतौर पर 'My_Controller_Plugin_SomePlugin' के रूप में एक प्लगइन का नाम देता हूं, लेकिन मैं अक्सर दूसरों को' My_Plugin_SomePlugin' जैसे कुछ उपयोग करता हूं। जैसा कि आप देखते हैं, तब तक कोई भी तरीका तब तक काम करता है जब तक आपका 'एडपैथ()' कॉल सही तरीके से मानचित्र करता है। धन्यवाद और जयकार! ;-) –