Мне нужно проверить, есть ли у пользователя права администратора в сервисе. Функция, которая вызывается в этом сервисе, может быть вызвана целую кучу раз для одного запроса. Можно проверить роль пользователя один раз и сохранить результат следующим образом:
class myService
{
private $accessGranted;
public function __construct(Security $security)
{
// user might not be set up yet?
$accessGranted = $security->isGranted('ROLE_ADMIN');
}
public function someFunctionWithSecurity()
{
if( $accessGranted )
// do the admin stuff here
else
// do slightly different stuff here
}
}
Кажется, это работает нормально, когда я тестирую его локально.
Мне было интересно, если что-то не так с этой настройкой, или это приведет к странным / нежелательным результатам.