2016-10-16 3 views
0

им обучения Zend Framework (3) ... Я установил Учение, потому что я не хочу писать SQL запросы, чтобы узнать все другие вещи быстрее ....Zend Framework, архитектура с доктриной

Первый вопрос:

Знаете, я сконфигурировал фабрику, которая загружает мне диспетчер сущности doctrine в мои контроллеры (с DI).

Итак, очень просто получить мои сущности на моем контроллере ... например, в моем Project Controller createAction я могу легко получить мои пользовательские объекты, чтобы показать их в моей проектной форме (проект < -> пользователь много-ко многим).

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

Второй вопрос:

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

Третий вопрос (Заключение):

Когда я хочу, чтобы загрузить данные из БД в мои контроллеры Что лучше практика здесь?

Загрузить его с ответственного лица ?

Загрузить его из Репозиторий (репозиторий загружает его из диспетчера объектов)?

Загрузить его из коллекции (коллекция загружает данные из класса репозитория, а репозиторий загружает данные из диспетчера объектов)?

Я не думал о Pagination @all ... вот что мне нужно сделать дальше ... но есть много вопросов, похожих на мои другие вопросы. (я знаю, что есть модуль Зенд для этого .. но понятия не имею, как это работает .. слишком узнать это тоже)

Im благодарен за любой намек, что означает и т.д.

ответ

1

Ответы на этот вопрос возможно, на основе всего мнения. Я бы сказал, что все зависит от личных предпочтений. Здесь нет такой вещи, как лучшая практика, все зависит от того, что вы будете делать в своем контроллере. Кроме того, вы можете легко получить хранилище от вашего объекта-менеджера, если вам это нужно:

$userRepository = $entityManager->getRepository('Application\Entity\User'); 

Более распространенным может быть, чтобы сделать заказ UserService (класс обертки) вокруг вашего хранилища/объект-менеджер, который вы заполняете пользовательские методы, которые вы хотели бы использовать с вашими ресурсами User.

Надеюсь, вам это поможет ...

+0

эй спасибо!да, это еще один вопрос, который возникает, когда я беспокоюсь по проекту. в symfony (fos user bundle) я могу сделать что-то подобное $ this-> user() в контроллерах ... как я могу привязать текущего пользователя к ActionController Scope ;-) –