Интеграция 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 - хорошая панель для отладки для разработки.