Я беру чей-то код и ничего не понимаю в голосовании.
Вот класс PhotosController:
class PhotosController extends Controller
{
/**
* @Route("/dashboard/photos/{id}/view", name="dashboard_photos_view")
* @Security("is_granted('view.photo', photo)")
* @param Photo $photo
* @param PhotoRepository $photoRepository
*/
public function index(Photo $photo, PhotoRepository $photoRepository)
{
$obj = $photoRepository->getFileObjectFromS3($photo);
header("Content-Type: {$obj['ContentType']}");
echo $obj['Body'];
exit;
}
Вот класс избирателей:
class PhotoVoter extends Voter
{
const VIEW = 'view.photo';
protected function supports($attribute, $subject)
{
if (!$subject instanceof Photo) {
return false;
}
if (!in_array($attribute, array(self::VIEW))) {
return false;
}
return true;
}
protected function voteOnAttribute($attribute, $subject, TokenInterface $token)
{
return $subject->getUser()->getId() === $token->getUser()->getId();
}
}
Я не понимаю, что такое
, фотография
предназначена для класса PhotosController.И в PhpStorm я получаю «не могу найти объявление», когда пытаюсь перейти к объявлению «is_granted».