Интеграция ZendFramework с другими фреймворками - PullRequest
13 голосов
/ 30 декабря 2010

Я хочу сделать этот вопрос руководством для тех, кто интересуется ZendFramework интеграцией с другими библиотеками / фреймворками.Поиск по StackOverflow не дает широкого представления о предмете.

Вопрос в том, какие библиотеки / фреймворки вы используете в своем текущем проекте на основе ZF?Каковы лучшие практики для архитектуры проектов на основе ZF?

Я не имею в виду какие-либо компоненты, которые уже являются частью ZF.Пожалуйста, дайте описание дополнительных интегрированных фреймворков (например, RuckUsing , Smarty или Doctrine ).Это также относится к любым каркасам GUI (возможно, вы используете CSS-фреймворк), а также к JS-фреймворкам (не только jQuery или прототип , но скорее к некоторым расширенным структурам).

Основное требование: это должен быть проект ZendFramework.

Дополнительный бонус будет предоставлен за ответы, описывающие оптимизацию производительности.

ОБНОВЛЕНИЕ

Каждый ответ, столь же информативный, как @ BryanM, будет рассматриваться для получения дополнительной награды.

Ответы [ 3 ]

9 голосов
/ 31 декабря 2010

Я использую Doctrine 2 в своих проектах Zend Framework.Он прост в использовании и легко вписывается.Основные шаги для его интеграции:

  • Напишите плагин ресурса, который инициализирует Doctrine 2 EntityManager с использованием параметров конфигурации в application.ini.Пример этого можно найти в DoctrineExtensions .
  • Бенджамина Эберлей. Вместо того, чтобы полагаться на глобальный реестр (Zend_Registry) для хранения ссылки на EntityManager, я полагаюсь на простое решение для внедрения зависимостейкак описано здесь для предоставления экземпляра моим контроллерам.
  • Я полагаюсь на систему событий Doctrine для создания повторно используемых классов «поведения» для таких вещей, как обновление временных отметок или проверка данных.
  • Я храню все свои сущности и бизнес-объекты в папке «моделей» моего приложения (в своем собственном пространстве имен), а все остальное - в моей папке library.Я интенсивно использую пространства имен PHP 5.3, чтобы упорядочить вещи.
  • Я использую библиотеку Doctrine-new-ish Migrations для обработки обновлений базы данных через командную строку.
  • Я также настоятельно рекомендую создать детальную сборку.процесс в Phing для обработки библиотечных зависимостей, автоматического модульного тестирования и выполнения миграций, которые могут быть интегрированы в систему управления версиями или CI Server.Также хорошо подходит для компиляции Javascript или CSS, если вы используете одну из этих платформ.

Эти практики не только хороши для Doctrine, они пригодятся в любое время, когда вы пытаетесь создать сайт.архитектура.Я думаю, что самые большие преимущества Zend в расширяемости - это плагины ресурсов и плагины ActionHelpers / Controller.

3 голосов
/ 04 января 2011

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

Может использоваться в качестве первой линии защиты от XSS-атак.Обратите внимание, что Zend_Filter_StripTags является , а не достаточным для этой цели.

2 голосов
/ 05 января 2011
  • ZendX_JQuery (учебное пособие доступно на zendcast.com ).

  • Несмотря на то, что это приложение ruby, мы используем webistrano для развертывания проектов php.

  • Если ваше веб-приложение должно выполнять полнотекстовый поиск в большом масштабе, я бы использовал sphinx в сочетании с zend (sorgalla.com ).

  • Если вы хотите использовать эти новые NoSQL-базы данных, такие как MongoDB, вы можете использовать morph в качестве высокоуровневой php-библиотеки.Я просто скопировал файлы в «библиотеку» и велел автозагрузчику загрузить файлы: autoloaderNamespaces [] = «Morph _».

  • ZF_Debug - хорошая панель отладкидля развития.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...