Ленивые коллекции в Zend Framework - PullRequest
1 голос
/ 31 января 2012

В настоящее время я работаю над простым приложением для составления бюджета в качестве личного проекта. Он построен на Zend Framework и использует архитектуру MVC и шаблон отображения данных. Контроллеры хранят и получают объекты модели домена через средства отображения данных и передают их в представление. Устройства отображения данных выполняют подготовленные операторы через адаптер Zend Db.

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

Архитектура работает достаточно хорошо для простых операций CRUD, но имеет несколько серьезных недостатков:

  • Прежде всего, производительность. Объект User создается для каждого запроса, и средство отображения данных автоматически извлекает все категории бюджета для этого пользователя из базы данных. Они в свою очередь извлекают свои дочерние записи транзакций из базы данных. Это явно неэффективно.
  • Во-вторых, в контроллерах много кода при работе с несколькими объектами модели или подмножеством объектов, такими как набор транзакций за определенный период времени. Я не уверен, где разместить этот код.

Ленивая загрузка кажется очевидным решением проблемы производительности. Но я не уверен, как реализовать это с помощью картографа данных и коллекций объектов. В частности, как должна работать отложенная загрузка, когда клиентский код запрашивает только подмножество коллекции?

1 Ответ

0 голосов
/ 31 января 2012

Я не могу помочь, но Падриг Брейди может. Ленивая загрузка доменных объектов Ознакомьтесь с разделами 9.6.4 и 9.6.5 «Выжить в зависимости»Он объясняет именно то, что вы спрашиваете.

...