История изменений
Исправление fman2, (текущая версия) :
Ну и идем дальше:
protected function isGranted($attributes, $subject = null): bool
{
if (!$this->container->has('security.authorization_checker')) {
throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require symfony/security-bundle".');
}
return $this->container->get('security.authorization_checker')->isGranted($attributes, $subject);
}
Это код из ControllerTrait.php, соответственно у нас в контроллере есть метод $this->isGranted() и я так понял он будет даже в случае, если у нас security-bundle не установлен. Это right-way?
Почему нельзя сделать по нормальному:
public function someAction(AuthorizationCheckerInterface $security)
{
if ($security->isGranted(...)) {
// ....
}
}
И все! Есть security-bundle у нас - ок, нету - ну и ладно, мы его не используем.
Может вы заметили мой «тон», но меня уже несколько дней бомбит от Symfony. Я до этого работал с Laravel/Yii2, а теперь делаю довольно сложный проект на Symfony. Как раз по right-way и по их доке.
К Laravel/Yii2 у меня не было никаких претензий. Это RAD. Особенно Yii2. Samdark это признает. И это хороший фреймворк, если не использовать в своих моделях Yii::$app и так далее.
Symfony я использовал по минимуму, но везде читал, что это чуть ли не единственный правильный фреймворк и тут такое.
И я вот прям чувствую, что меня где-то с Symfony наеобманули
Исправление fman2, :
Ну и идем дальше:
protected function isGranted($attributes, $subject = null): bool
{
if (!$this->container->has('security.authorization_checker')) {
throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require symfony/security-bundle".');
}
return $this->container->get('security.authorization_checker')->isGranted($attributes, $subject);
}
Это код из ControllerTrait.php, соответственно у нас в контроллере есть метод $this->isGranted() и я так понял он будет даже в случае, если у нас security-bundle не установлен. Это right-way?
Почему нельзя сделать по нормальному:
public function someAction(SecurityInterface $security)
{
if ($security->isGranted(...)) {
// ....
}
}
И все! Есть security-bundle у нас - ок, нету - ну и ладно, мы его не используем.
Может вы заметили мой «тон», но меня уже несколько дней бомбит от Symfony. Я до этого работал с Laravel/Yii2, а теперь делаю довольно сложный проект на Symfony. Как раз по right-way и по их доке.
К Laravel/Yii2 у меня не было никаких претензий. Это RAD. Особенно Yii2. Samdark это признает. И это хороший фреймворк, если не использовать в своих моделях Yii::$app и так далее.
Symfony я использовал по минимуму, но везде читал, что это чуть ли не единственный правильный фреймворк и тут такое.
И я вот прям чувствую, что меня где-то с Symfony наеобманули
Исходная версия fman2, :
Ну и идем дальше:
protected function isGranted($attributes, $subject = null): bool
{
if (!$this->container->has('security.authorization_checker')) {
throw new \LogicException('The SecurityBundle is not registered in your application. Try running "composer require symfony/security-bundle".');
}
return $this->container->get('security.authorization_checker')->isGranted($attributes, $subject);
}
Это код из ControllerTrait.php, соответственно у нас в контроллере есть метод $this->isGranted() и я так понял он будет даже в случае, если у нас security-bundle не установлен. Это right-way?
Почему нельзя сделать по нормальному:
public function someAction(SecurityInterface $security)
{
if ($security->isGranted(...)) {
// ....
}
}
И все! Есть security-bundle у нас - ок, нету - ну и ладно, мы его не используем.
Может вы заметили мой «тон», но меня уже несколько дней бомбит от Symfony. Я до этого работал с Laravel/Yii2, а теперь делаю довольно сложный проект на Symfony. Как раз по right-way и по их доке.
К Laravel/Yii2 у меня не было никаких претензий. Это RAD. Особенно Yii2. Samdark это признает. И это хороший фреймворк, если не использовать в своих моделях Yii::$app и так далее.
Symfony я использовал по минимуму, но везде читал, что это чуть ли не единственный правильный фреймворк и тут такое.