PHP OO - как инициализировать бизнес-объекты?

По бизнесу модель или бизнес-объекты, я имею в виду простые старые объекты, такие как «Пользователь» со всеми их свойствами name, adress, .. .; в дополнение ко всем свойствам пользователя предположим, что каждый пользователь будет иметь объект «AppointmentBook», каждая книга имеет набор объектов «TimeSlot» и т. д. В бизнес-модели есть объекты со ссылками между ними, по крайней мере, это как я кодирую бизнес-модель на Java. Здесь возникает вопрос:

Чтобы инициализировать мои бизнес-объекты, в Java я бы

  1. извлекал все данные из БД только один раз во время инициализации приложения ,
  2. отображать данные из моей БД в мои бизнес-объекты
  3. , хранящиеся в памяти (картах), и они будут совместно использоваться для всех запросов.

PHP Share-Nothing-Architecture сбивает меня с толку из-за правильного объектно-ориентированного программирования: Если я использую ту же логику, мне придется получать все объекты из БД , для каждого запроса (я знаю, что все еще могу кэшировать, но вы не кешируете всю свою БД, это не вопрос кеширования, а скорее о способе программирования на PHP и его архитектуре).

Допустим, для одного HTTP-запроса мне просто нужны свойства пользователя, и мне не нужно получать доступ к его книге встреч. Было бы жалко извлекать все данные из БД для всех объектов, на которые ссылается Пользователь, поскольку мне просто нужны его свойства. Это означает, что я инициализирую объекты PHP из моей модели множеством значений NULL (NULL из-за объектов, содержащихся в User, которые я не буду загружать), что впоследствии может привести к ошибкам.

Мне было интересно, как профессиональные разработчики PHP обычно используют свои бизнес-объекты? (Я пришел с Java)


ОБНОВЛЕНИЕ: Было глупо говорить, что я загружаю все базу данных в память во время инициализации приложения на Java. Скорее всего, я имел в виду, что если мне нужно получить информацию о конкретном пользователе, я могу просто загрузить все его данные, и они будут доступны через все запросы.

6
задан NullPoiиteя 11 December 2012 в 13:20
поделиться