Zend Рамковниот per-Модул во местото на живеење

Со Стивен Лојд Watkin , Петок 1 јануари 2010 22:40

Јас направивме трае до овој пост кој што бара помалку конфигурација, погледнете Модул Врз Распоред - Zend Рамковниот .

При користење на Zend рамка со модули, кои својата Очигледно е дека ако сте трчање различни (под-)-сајтови надвор од иста апликација што не мора да сакаат исти распоред скрипти за секој дел. Решив да одам со следнава страница структура:

  / Апликација
     / Контролери
         ...
     / Модели
     / Модули
         / Default
             / Контролери
             / Распоред
                 / Скрипти
             / Видено
                 / Скрипти
         / AnotherModule
             ...
     / Скрипти

Проблемот беше поставување на изгледот скрипти на на-модул основа. Одговорот дојде преку користење на Акционен Helper. Поставување на распоред на на-модул основа се состои од три чекори:

  1. Application.ini (или слична конфигурација подесување):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / скици / скрипти"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / скици / скрипти"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / член / скици / скрипти"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / партнер / скици / скрипти" 
  2. Направете ја вашата акција Helper:
      <? Php
     / **
      * Поставување на изгледот патот на на-модул основа
      *
      * @ Author Лојд Watkin <lloyd@evilprofessor.co.uk>
      * @ Бидејќи 2010/01/01
      * /
     класа Pro_Controller_Action_Helper_SetLayoutPath
         протега Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Поставува распоред пат врз основа на модулот
          * /
         јавна функција preDispatch ()
         {
        	 $ Модул = $ ова-> getRequest () -> getModuleName ();
    
    	     ако ($ подигање = $ ова-> getActionController ()
    	                        -> GetInvokeArg ('подигање')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         ако (isset ($ config ['layoutPath'] ['изглед'] [$ модул] ['ресурси'])) {
    	             $ LayoutPath =
    	                  $ Config [$ модул] ['layoutPath'] ['изглед'] ['ресурси'];
    	             $ Ова-> getActionController ()
    	                  -> GetHelper ("распоред")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. И на крај акцијата boostrap помошник:
      ...
         / **
          * Поставува распоред скрипти на на-модул основа
          * /
         функција заштитена _initLayoutHelper ()
    	 {
    	     $ Ова-> bootstrap ('frontController');
    	     $ Распоред = Zend_Controller_Action_HelperBroker:: addHelper (
    	         нови Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Responses to "Zend Рамковниот per-Модул во местото на живеење"

  1. Behrang вели:

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

  2. Здраво Behrang, создаде акцијата помошник со кое име ви се допаѓа, јас имам свој "библиотека" со именски простор 'Про. Вие би можеле многу лесно го нарекуваат "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

4 посетители онлајн сега
2 Гости, 2-ботови, 0 членови
Макс посетители денес: 11 во 02:18 UTC
Овој месец: 22 во 2011/08/06 12:30 UTC
Оваа година: 28-03-2011 во 130 22:40 UTC
Сите времиња: 130 на 28-03-2011 10:40 UTC