2010-07-18 2 views
4

Я читал Zend Framework Book: Survive the Deep End о методах ресурсов. он говорит о том, как методы ресурсов будут переопределять плагин ресурсов.Zend Framework: плагины ресурсов против методов

Но подождите, есть также ресурс Plugin (Zend_Application_Resource_View), который также может создать ресурс под названием View. Можем ли мы иметь два вида ресурсов? не Ответ нет - мы можем иметь один и один только

в Zend Framework Manual,

хороший способ для создания повторно используемых ресурсов загрузки и выгрузки большую часть кода в отдельные классы предназначены для использования плагинов ресурсов ... намерение заключается в том, что разработчики должны написать свой собственный, чтобы инкапсулировать свои собственные потребности в инициализации

для меня методы ресурсов выглядят как более интуитивно понятный способ инициализации ресурсов, почему же я должен использовать плагины? это вопрос, который я предпочитаю? или они используются в разных обстоятельствах?

будут ли методы ресурсов заменять или добавлять функциональные возможности предоставляемых плагинов ресурсов? потому что если он заменит, мне нужно будет убедиться, что я инициализирую все переменные или что мне нужно?

Возвращая новый экземпляр Zend_View из _initView(), Zend_Application примет замену и не будет пытаться перезаписать наши изменения, запустив Zend_Application_Resource_View установить вверх стандарт по умолчанию Zend_View экземпляр с изъяны мы просто исправлен

если я не возвращать Zend_View, это будет, как если бы я не имел метод? могу ли я сказать, что я всегда должен что-то возвращать из методов ресурсов?

Здесь мы делаем то же самое с помощью метод getResource() для получения Экземпляр Zend_Controller_Front создан и настроен Zend_Application_Resource_Frontcontroller

из вышесказанного, я могу сказать, что если Я хочу, чтобы мои методы ресурсов имели значения по умолчанию, установленные предоставленным плагином ресурсов, я могу сделать getResource() 1st?

ответ

5

Отвечая на ваши вопросы:

Должен ли я использовать плагин ресурсов или методы?

Я бы сказал, что это в значительной степени зависит от личных предпочтений.Как говорится в цитате из руководства, если вы используете плагин ресурсов, становится проще повторно использовать код в другом проекте (так как проще перемещаться/тестировать класс, чем вырезать текст из метода) , На мой взгляд, методы позволяют немного легче понять, что происходит в бутстрапе, по крайней мере, пока они не станут немного сложными, и в этом случае было бы целесообразно преобразовать их в плагин.

Будет ли метод ресурсов заменять или добавлять к функциям, предоставляемым плагинами ресурсов?

Я считаю, что он работает, так это то, что плагины загружаются и инициализируются, когда сначала запускается класс начальной загрузки. Затем бутстрап будет проходить через ваши методы и запускать их. Если у вас есть метод с именем тот же, что и ресурс плагина, ваш метод переопределит этот плагин. Однако вы также можете получить доступ к существующему ресурсу из своего метода и изменить его, и в этом случае ваш метод добавляет функциональность, предоставляемую плагином.

Помните, что плагины не магически запускаются сами по себе (кроме плагина переднего контроллера, который всегда будет работать). Они будут использоваться только в том случае, если ваш application.ini запускает их (или вы вызываете их из своих собственных методов).

Если я не верну Zend_View, это будет, как если бы у меня не было метода? могу ли я сказать, что я всегда должен что-то возвращать из методов ресурсов?

Это хорошая практика, чтобы вернуть что-то из методов ресурсов, поскольку это позволяет доступ к ресурсу другими способами или другими частями приложения. Однако метод все равно будет работать без возвращаемого значения. Но если вы добавили метод _initView и настроили новый объект Zend_View, если вы ничего не сделаете с ним, это не повлияет на ваше приложение.

Могу ли я сказать, что если я хочу, чтобы мои методы ресурсов, чтобы иметь значения по умолчанию, установленные при условии плагина ресурсов, я могу сделать getResource()

Да. Но я бы удостоверился, что вы вернете ресурс в этом случае, просто так, чтобы любые другие методы, которые обращаются к ресурсу, используют вашу измененную, а не одну настройку плагина.

Лично я бы либо придерживался application.ini + плагинов ресурсов, либо методов ресурсов. Легче понять, что происходит, если весь ресурс находится в одном месте.

Смежные вопросы