Прокси-сервер - это ссылка на что-то.
Предположим, вы создаете пользователя, и у одного пользователя есть одна присоединенная группа.Если у вас нет поддержки прокси, вам нужно будет выполнить выборку для БД для группы, чтобы иметь возможность использовать сущность.Вот возможный код:
$group = $em->getRepository('Group')->findOneById(1);
С поддержкой Прокси вам не нужно выполнять поиск в БД.Прокси считается ссылкой на объект БД, фактически не извлекая его.Ваш код:
$group = $em->getReference('Group', 1);
Преимущество наличия прокси проста ... если вам нужно (например) получить имя группы, просто сделайте это обычно: $ group-> getName ();И Proxy инициализирует Entity (выборка БД по требованию).
Репозиторий - это манипуляция данными.Вы используете его для управления своими сущностями.Таким образом, вы можете найтиById, findOneByEmail и т. Д. Вы также можете расширить его основные функциональные возможности и реализовать свои собственные методы для управления вашими сущностями, такие как: saveUser, retrieveMostActiveUsers.
Служба использует внутренние хранилища, но содержит больше проверки иможет взаимодействовать с> 1 хранилищем.Например, после успешного сохранения пользователя вы хотите отправить ему электронное письмо с поздравлением.Таким образом, в вашем методе createUser UserService вы извлекаете NotificationService и отправляете новое регистрационное письмо.
Понятно ли вам это сейчас?=)
Ура,