Zend چارچوب هر ماژول بر اساس تنظیمات

توسط لوید Watkin استیون ، جمعه 2010 ژانویه 1 22:40

من تنظیمات ایجاد follow-up مربوط به این پیام که کمتر نیاز دارد ، لطفا ماژول بر اساس طرح بندی -- Zend چارچوب .

هنگام استفاده از چارچوب zend با ماژول ها ، مشخص آن است که اگر شما در حال اجرا های مختلف (زیر -) سایت های خارج از برنامه مشابه ، شما لزوما می خواهم همان اسکریپت طرح بندی برای هر بخش. من تصمیم گرفتم تا با ساختار سایت زیر بروید :

  / نرم افزار
     / کنترل کننده
         ...
     / مدل
     / ماژول ها
         / پیش فرض
             / کنترل کننده
             / طرح
                 / اسکریپت ها
             / نمایش ها
                 / اسکریپت ها
         / anotherModule
             ...
     / اسکریپت ها

مشکل این بود راه اندازی اسکریپت طرح بر اساس هر ماژول. پاسخ آمد از طریق استفاده از یاور اکشن. تنظیم طرح بندی بر اساس هر ماژول شامل سه مرحله است :

  1. 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 = "/ ماژول / وابسته / پوسته / اسکریپت" 
  2. ایجاد خود اقدام یاور :
      <؟ پی اچ پی
     / **
      * مجموعه مسیر طرح بر اساس هر ماژول
      *
      * @ نویسنده لوید 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) ؛
    	         }
        	 }
         }
     } 
  3. و نهایتا boostrap یاور عمل :
      ...
         / **
          * مجموعه اسکریپت تا طرح بر اساس هر ماژول
          * /
         _initLayoutHelper عملکرد حفاظت شده ()
    	 {
    	     این $> - خود راه انداز ('frontController') ؛
    	     $ = طرح Zend_Controller_Action_HelperBroker : : addHelper (
    	         Pro_Controller_Action_Helper_SetLayoutPath جدید ()) ؛
    	 }
     ... 

4 پاسخ به "چارچوب Zend تنظیمات هر ماژول بر اساس"

  1. بهرنگ می گوید :

    سلام اول تشکر برای شما مفید خودآموز اما به من بگویید که در آن ایجاد کنم یاور عمل با نام جادوگر فایل ارسال کنم؟
    بهرنگ

  2. سلام بهرنگ ، ایجاد یاور عمل با نام هر کدام را دوست دارید ، من خود 'کتابخانه' من با فضای نام 'نرم افزار'. شما فقط می تواند به راحتی 'SetLayoutPath' کلاس تماس بگیرید و آن را که در آن یک نفر از تو می خواهم ، ارائه کد می توانید آن را پیدا کرده و شما را گسترش کلاس های مورد نیاز

  3. shashi kanth می گوید :

    سلام ، iam اشتباه با راه اندازی تنظیمات ماژول بانک اطلاعاتی خاص... آیا کسی که ایده؟

  4. من فکر می کنم این به آسانی می تواند به دست آورد usign الگوی بالا کلیک کنید. در مرحله اول ، ایجاد گزینه های موجود در فایل این فایل خود را همراه فایل از :

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... و غیره...

    سپس به سادگی اتصال به پایگاه داده خود را به عنوان شما را مناسب تولید (Zend_Db : : کارخانه () یا مشابه آن) و ذخیره کردن آن را دور از اونها در رجیستری و یا تنظیم آن را به عنوان آداپتور به طور پیش فرض اگر با استفاده از Zend_Db_Table (Zend_Db_Table : : setDefaultAdapter ()).

پاسخی بنویسید













تم های پانوراما Themocracy

3 بازدید کنندگان آنلاین
1 مهمان ، 2 رباتها ، 0 کاربران
حداکثر بازدید کننده امروز : 16 در 12:39 UTC
این ماه : 26 در 2011/07/05 12:35 UTC
این سال : 130 در 28-03-2011 22:40 UTC
تمام زمان حال : 130 در 28-03-2011 10:40 UTC