Zend Framework Per-модул на настройки

С Стивън Лойд Watkin , петък 1-ви 1, 2010 22:40

Аз бях създал В отговор на тази длъжност, която изисква по-малко конфигурация, моля, вижте Модул базата Разпределение - Zend Framework .

При използване на Zend Framework с модули, си очевидно, че ако сте под различни (под) сайтове на разстояние от същото заявление не е задължително да искат същите скриптове оформление за всяка част. Реших да отида със следната структура на сайта:

  / Приложение
     / Контролери
         ...
     / Модели
     / Модули
         / По подразбиране
             / Контролери
             / Оформление
                 / Скриптове
             / Мнения
                 / Скриптове
         / AnotherModule
             ...
     / Скриптове

Проблемът е за създаване на скриптове оформлението на на-модулен принцип. Отговорът дойде чрез използване на действие Helper. Настройване на оформлението на на-модулен принцип включва три стъпки:

  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. Създаване на действие Помощник:
      <? PHP
     / **
      * Задава оформлението пътя на на-модулен принцип
      *
      * @ Автор Лойд Watkin <lloyd@evilprofessor.co.uk>
      * @ От 01.01.2010
      * /
     клас 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 Framework Per-модул на настройки"

  1. Behrang казва:

    Здравейте първо благодаря за полезен урок, но кажете ми къде да създавам действие помощник с имената на вещица файл?
    behrang

  2. Здравейте Behrang, създаване на действие помощник с което името ти харесва, аз имам свои "библиотека" на пространството от "Pro". Можете също така могат да наричат ​​"SetLayoutPath" на класа и го сложи там където ви харесва, при условие на кода може да го намери и ще разшири задължителните курсове

  3. Шаши kanth казва:

    Здравейте, IAM бърка с въвеждането на модула на настройките база данни ... Някой има ли идея?

  4. Мисля, че това може лесно да се постигне usign по-горе схема. Първо, създаване на възможности в INI файл по досиетата на:

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... И т.н. ...

    След това просто генериране на връзката към нея както намерите за добре (Zend_Db:: фабрика () или нещо подобно) и скривалище далеч в регистъра или да го задава като основен адаптер, ако използвате Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Вашият коментар













Панорама Тема от Themocracy

6 посетители онлайн
5 гости, 1 ботове, 0 потребители
Макс посетители днес: 6 в 12:06 ч. UTC
Този месец: 26 на 07.05.2011 12:35 ч. UTC
Тази година: 130 на 28-03-2011 22:40 UTC
През цялото време: 130 на 28-03-2011 22:40 UTC