Пользовательские ресурсы для Zend_Application

Источник: Custom Zend_Application Resources
Автор: Rob Allen
Переводчик: Лобач Олег

Рано или поздно, вы захотите использовать Zend_Application эффективней при помощи создания собственных плагинов ресурсов. Это значительно упрощает и ускоряет начальную стадию разработки нового приложения за счет повторного использования однажды уже проделанной работы по инициализации окружения. К тому же это сделает ваш Boostrap-класс очень компактным!

В моем случае, я хотел создать ресурс для CouchDb, который проверял бы что база данных была создана, в противном случае создавал бы её.

Создание собственных плагинов достаточно просто. Очевидным местом для размещения будет library/App/Application/Resource и типичный ресурс будет выглядеть следующим образом:

class App_Application_Resource_Couchdb
            extends Zend_Application_Resource_ResourceAbstract
{
    /**
     * Defined by Zend_Application_Resource_Resource
     *
     * @return Phly_Couch|null
     */
    public function init()
    {
         // тут выполняются действия для инициализации CouchDb
        $options = $this->getOptions();
        // в $options находится все содержимое 'resources.couchdb' из application.ini
    }
}

Вы должны уведомить Zend_Application о ваших новых плагинах. Это делается посредством одной строчки в application.ini:

pluginPaths.App_Application_Resource_ = "App/Application/Resource"

Теперь вы можете иметь столько плагинов ресурсов, сколько вам захочется, располагая их в пространстве App_Application_Resource_.

Кроме того, Matthew Weier O'Phinney написал статью о Zend_Application, которую вам обязательно стоит прочесть.


 

Похожие записи

Эта запись опубликована в рубриках: Zend Framework. Метки записи: , , , , , , , , . Постоянная ссылка.

Оставить комментарий

Почта (не публикуется) Обязательные поля помечены *

*

Вы можете использовать эти HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>