В общем, задумка, следующая. Есть сущности User, Order, Post, Category и так далее, их может быть сколько угодно.
К сущностям нужны дополнительные поля. Которые будут хранится в одной таблице, к примеру custom_fields, со следующей структурой:
id | entity_class | entity_id | key | value
где entity_class может быть User, Order...
И мне хотелось бы написать базовый класс Entity, от которого будут наследоваться все остальные и соответственно все остальные будут иметь поддержку кастомных полей. Соответственно, для связи OneToMany мне нужно сделать дополнительную выборку по entity_class. Если что-то непонятно написал, спрашивайте.
Денис, что вы привязались к этим событиям. Вопрос не в них. Ткните носом в доку, вместо непонятного ответа на stackoverflow как программно аутентифицировать пользователя.
Соответственно аутентификацию необходимо проводить программно.
Мой вопрос как раз в этом и заключается, как правильно без костылей это сделать.
Laravel предоставляет \Illuminate\Contracts\Auth\Authenticatable loginUsingId для аутентификации пользователя по его идентификатору. При этом события он берет на себя, я не должен знать как он внутри работает. Что-то похожее мне надо для UserInterface в Symfony.
FanatPHP, сервис аутентификации сам должен дергать событие, когда ты аутентифицируешь пользователя. Мы не должны никак дополнительно оповещать Symfony о том, что мы аутентифицировались. Когда мы указываем пользователя, она сама должна об этом позаботиться. В случае ответа на stackoverflow мы вытаскиваем кишки в контроллер, у нас нарушается инкапсуляция, тем самым у нас появляется еще одна ненужная зависимость и тогда смысл всего security-bundle теряется.
Еще раз - тот ответ это обходной путь, костыль, говнокод, что угодно. Должен быть нормальный путь имя инстанс UserInterface как то его аутентифицировать, не вызывая никаких событий руками.
Symfony 4, те варианты я видел. security.context deprecated. С кодом все в порядке, не переживайте. Я поэтому и пишу, чтобы подсказали знающие люди как это сделать без костылей.
Второй случай вообще какой-то костыль, это точно не вариант использовать. Должен быть более правильный путь. Но если нет, то мне как-то страшно за Symfony. Потому что как-по мне дергать вручную событие аутентификации точно не Symfony-way, а какой-то говнокод.
Мы постепенно внедряем vue.