Интеграция Doctrine 2.2 с Zend Framework для максимальной производительности - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть несколько вопросов об интеграции интеграции Doctrine 2.2 и Zend Framework.Я знаю, что есть много вопросов, в которых обсуждается одна и та же проблема, но у меня есть конкретные вопросы по этому поводу.

  1. Как лучше всего разместить Doctrine Entities, Proxies, Repositories,...etc для максимальной производительности?Большинство методов интеграции генерируют сущности в Namespace в папке library, но мне было интересно, будет ли размещение их в models folder внутри моего приложения лучше для производительности.Например, вместо поиска по всему пути включения моя папка с моделями будет быстрее найдена.

  2. Каков наилучший метод интеграции с точки зрения производительности?Я планирую использовать интеграцию Bisna, но, если есть лучший способ интеграции, пожалуйста, сообщите мне.

  3. Если я хочу добавить сервисный слой для Doctrine, где будетлучшее место?

Примечания:

  • Я использую структуру папок по умолчанию, сгенерированную Zend tool для моих проектов.
  • Я скачалДоктрина 2 и добавила его в папку моей библиотеки.

Заранее спасибо

1 Ответ

3 голосов
/ 13 февраля 2012

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

Мне очень нравится интеграция Bisna.Я думаю, что это одна из лучших интеграций Doctrine2 для ZF.Это маленький, простой и чистый.Интеграция с Bisna позволяет легко изменять уровни кэширования в вашем application.ini, поэтому этот подход полезен для производительности.Но интеграция не является ракетостроением, поэтому я не вижу никакой разницы в производительности между другими интеграциями.

Существуют некоторые параметры конфигурации, которые необходимо учитывать для повышения производительности.Вам следует отключить автоматическую генерацию прокси в вашей производственной среде и создавать их с помощью Doctrine-CLI.Рекомендуется включать кеширование Annotation и DQL-> SQL с помощью APC или Memcache, что значительно повысит производительность.

Кроме того, в Doctrine2 у вас есть много возможностей для кэширования ваших запросов, передавая время жизни запроса.Если вы установите APC или Memcaching в качестве кэширования по умолчанию, ваши результирующие наборы будут сохранены там.

Надеюсь, мой ответ вам немного поможет, если вы хотите чего-то большего, просто спросите!

...