Интеграция ZendFramework с другими платформами

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

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

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

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

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

UPDATE

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

  • ZendX_JQuery (учебник доступен на zendcast.com).

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

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

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

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