В настоящее время я работаю над проектом с Zend Framework & Doctrine 2, я действительно доволен обоими этими инструментами, но мне интересно, как работать с этим специальным объектом User, который совместно использует данные базы данных, данные сеанса(авторизация, параметры, acl и т. д.)
Я часто вижу такую реализацию:
if (User::isConnected())
Для меня проблема в том, что мой класс User является сущностью, которая используетсяпо доктрине, ну, это не проблема, но это может добавить некоторую бизнес-логику, если у моего пользователя есть какая-то сложная роль и / или привилегии.
Кстати, я не знаю почему (просто чувство, может быть,неправильно) но это не выглядит хорошей идеей, я почти уверен, что у него есть ограничения на дизайн.
В настоящее время моя идея состоит в том, чтобы использовать UserService, я уже пытаюсь использовать такой слой для своей другой сущностии это выглядит действительно интересно.
Как насчет чего-то вроде:
$service = new UserService($entityManager);
if ($service->isUserConnected($user))
Это может позволить мне использовать другой сервис, такой как IdentificationService, который может хранить «пользователя» (или любой другой «ресурс», которыйможет быть автов сеанс и проверьте авторизацию.
То же самое можно применить к AuthorizationService с помощью метода, подобного:
$service->isAuthorized($user, $resource, $action)
Есть ли у вас какие-либо отзывы о реализации такого рода?И / или какие-нибудь примеры?
Что ты думаешь?
Спасибо.