У меня есть контроллер и текущий пользователь в нём.
https://github.com/cheevauva/setcms/blob/7c...ViaPSR7.php#L16
Текущий пользователь выбирается мидлваром https://github.com/cheevauva/setcms/blob/7c...dleware.php#L29
А потом во фронкотноллере передается https://github.com/cheevauva/setcms/blob/7c...troller.php#L53 передается в контроллер
контроллер передает текущего пользователя во вью https://github.com/cheevauva/setcms/blob/7c...ViaPSR7.php#L50
Плюсы - нет магии, нет ни атрибутов, не магических методов, только явная передача текущего пользователя. Минусы - присутствует текущий пользователь даже если он объективно не нужен, а самое главное UserEntity становится обязательным объектом на уровне приложения, а не конкретных модулей. Он будет во всех вьюхаха и контроллерах, хотя по факту нужен лишь для того чтобы в подшаблоннах была возможность манипулировать объектом текущего пользователя https://github.com/cheevauva/setcms/blob/7c...ionMenu.twig#L3
Короче непонятно как не потерять прозрачность и сделать так чтобы UserEntity стал присутствовать только в нужных местах, а не по всей системе
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации