زند لكل وحدة تستند الإعدادات إطار العمل
لقد خلق متابعة لهذا المنصب الذي يتطلب أقل التكوين ، يرجى الاطلاع على وحدة تخطيط وبناء -- إطار زند .
عند استخدام الإطار زند مع وحدات ، من الواضح أن إذا كنت تقوم بتشغيل مختلف (الفرعية) مواقع قبالة نفس التطبيق كنت لا تريد بالضرورة نفس تخطيط البرامج النصية لكل جزء. قررت أن أذهب مع بنية الموقع التالي :
/ التطبيق / وحدات تحكم ... / النماذج / وحدات / الافتراضي / وحدات تحكم / تخطيط / مخطوطات / وجهات النظر / مخطوطات / anotherModule ... / مخطوطات
وكانت المشكلة إعداد تخطيط البرامج النصية على أساس لكل وحدة. وجاء الجواب من خلال استخدام مساعد العمل. إنشاء تخطيطات على أساس لكل وحدة تتضمن ثلاث خطوات :
- Application.ini (أو ما شابه ذلك إعداد التكوين) :
admin.resources.layout.layoutPath APPLICATION_PATH = "/ وحدات / المشرف / تخطيطات / مخطوطات" default.resources.layout.layoutPath APPLICATION_PATH = "/ وحدات / الافتراضي / تخطيطات / مخطوطات" member.resources.layout.layoutPath APPLICATION_PATH = "/ وحدات / عضو / تخطيطات / مخطوطات" affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ وحدات / التابعة / تخطيطات / مخطوطات"
- خلق لكم عمل مساعد :
<؟ فب / ** * يضبط مسار التخطيط على أساس لكل وحدة * @ * كاتب لويد Watkin <lloyd@evilprofessor.co.uk> * @ منذ 2010/01/01 * / فئة Pro_Controller_Action_Helper_SetLayoutPath يمتد Zend_Controller_Action_Helper_Abstract { / ** * مسار تخطيط مجموعات على أساس وحدة * / preDispatch العامة الدالة () { $ وحدة = getRequest دولار هذا -> () --> getModuleName () ؛ إذا دولار (التمهيد = دولار هذا getActionController -> () --> getInvokeArg ('التمهيد')) { = $ $ التكوين getOptions التمهيد -> () ؛ إذا كان (isset ($ التكوين ['تخطيط'] [$ وحدة] ['موارد'] ['layoutPath'])) { $ layoutPath = $ التكوين [$ وحدة] ['تصميم'] ['موارد'] ['layoutPath'] ؛ دولار هذا> - getActionController () --> getHelper ('تصميم') -- setLayoutPath> ($ layoutPath) ؛ } } } }
- وأخيرا boostrap المساعد العمل :
... / ** * من يقوم بإعداد البرامج النصية التخطيط على أساس لكل وحدة * / _initLayoutHelper المحمية وظيفة () { دولار هذا> - التمهيد ('frontController') ؛ $ = تخطيط Zend_Controller_Action_HelperBroker : addHelper ( جديد Pro_Controller_Action_Helper_SetLayoutPath ()) ؛ } ...


















































مرحبا شكرا لجهودكم أول مفيدة تعليمي ولكن قل لي أين يمكنني إنشاء المساعد عمل مع اسم ملف ساحرة؟
behrang
مرحبا Behrang ، وخلق المساعد عمل مع أي اسم تريد ، لقد بلدي 'المكتبة' مع 'المؤيد' مساحة الاسم. هل يمكن بسهولة مثلما استدعاء 'SetLayoutPath' الفئة ووضعها أي وقت مضى حيث تريد ، وينص القانون يمكن ان تجد وأنت تمديد الفئات المطلوبة
مرحبا.. إني الخلط بينه وبين إنشاء وحدة إعدادات قاعدة بيانات محددة... هل لديك فكرة؟
وأعتقد أن هذا يمكن أن يتحقق بسهولة usign نمط أعلاه. أولا ، خلق الخيارات في الملف & الخاص على طول ملفات :
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... الخ...
ثم تولد ببساطة اتصال قاعدة البيانات الخاصة بك النحو الذي تراه مناسبا (Zend_Db : : مصنع () أو ما شابه ذلك) ، وخبأ بعيدا في التسجيل أو تعيينها كما المحول الافتراضي إذا به Zend_Db_Table (Zend_Db_Table : setDefaultAdapter ()).