Паведамленні з тэгамі: модуль

Zend Framework На Налады модуля Layout - Follow Up

Па , аўторак 16 лютага 2010 08:48 вечара

У якасці наступных мер у маім папярэднім пасьце на кожны модуль на аснове параметраў макета для Zend Framework , я абнавіў код патрабуе менш канфігурацыі, чым раней (не тое, што патрабуецца больш, чым некалькі радкоў у канфігурацыі прыкладанні!).
Працягнуць чытанне "Zend Framework На Налады модуля Layout - Follow Up" »

Zend Framework для кожнага модуля на аснове параметраў

Па , у пятніцу 1 студзені 2010 10:40 вечара

Я стварыў наступных на гэты пост, які патрабуе менш канфігурацыі, гл модуль на аснове макета - Zend Framework .

Пры выкарыстанні Zend Framework, пры дапамозе модуля, яго відавочным, што калі вы працуеце з рознымі (суб-) сайты з аднаго прыкладанні не абавязкова хочуць таго ж, сцэнары раскладка для кожнай часткі. Я вырашыў пайсці з наступнага структурай сайта:

  / Прымяненне
     / Кантролеры
         ...
     / Мадэлі
     / Модуляў
         / Па змаўчанні
             / Кантролеры
             / Размяшчэнне
                 / Скрыпты
             / Праглядаў
                 / Скрыпты
         / 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. Стварыце дзеянні Helper:
      <? PHP
     / **
      * Усталёўвае размяшчэнне на шляху кожнага модуля
      *
      * @ Аўтар Лойд Уоткин <lloyd@evilprofessor.co.uk>
      * @ З 2010/01/01
      * /
     Клас Pro_Controller_Action_Helper_SetLayoutPath
         пашырае Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Наборы размяшчэнне шлях, заснаваны на модулі
          * /
         грамадскіх preDispatch функцыі ()
         {
        	 Модуль $ = $ гэта-> GetRequest () -> getModuleName ();
    
    	     калі ($ загрузкі = $ гэта-> getActionController ()
    	                        -> GetInvokeArg ('загрузкі')) {
    
    	         $ = $ Канфігурацыі загрузкі-> getOptions ();
    
    	         калі (Исеть ($ CONFIG [$ модуль] ['рэсурсы'] ['схема'] ['layoutPath'])) {
    	             $ = LayoutPath
    	                  $ CONFIG [$ модуль] ['рэсурсы'] ['схема'] ['layoutPath'];
    	             $ Гэта-> getActionController ()
    	                  -> GetHelper («размяшчэнне»)
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. І, нарэшце boostrap памочнік дзеянні:
      ...
         / **
          * Усталёўвае размяшчэнне скрыптоў на кожнага модуля
          * /
         абароненая функцыя _initLayoutHelper ()
    	 {
    	     $ Гэта-> загрузкі ('FrontController');
    	     $ = Размяшчэнне Zend_Controller_Action_HelperBroker :: addHelper (
    	         новы Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 












Панарама Тэма Themocracy

15 наведвальнікаў форуму
14 гасцей, 1 ботаў, 0 карыстальнікаў
Макс наведвальнікаў сёння: 16 ст 8:30 вечара UTC
У гэтым месяцы: 56 у 2012/04/25 08:41 раніцы UTC
У гэтым годзе: 69 у 2012/02/27 09:56 UTC
За ўвесь час: 130 у 2011/03/28 10:40 вечара UTC