Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Проблема следующая: У меня есть один общий интерфейс и несколько его реализаций, в сервис-провайдере я могу привязать к интерфейсу только одну конкретную его реализация ($this->app->bind('InterfaceName', 'ClassName');), но в разных экшенах мне нужно получать разные реализации этого базового интерфейса, как мне поступить?
аутентификация, - это не конечный продукт. задумка на развитие функционала.
В том то и дело, каким образом можно вменяемо расширять функционал? Переопределять методы трейтов? Это же бред!
Зачем тогда в Laravel существует сервис контейнер? К тому же так нарушается SOLID принцип open-closed. Почему нет базового интерфейса, который бы реализовал класс стандартной аутентификации? И при желании мы бы реализовывали его как угодно (допустим класс SocialAutentication, который реализовывал бы AutenticationInterface), я это вижу так. В чём я не прав?
Ну не знаю, по-этому и спрашиваю. Там прямо в контроллере юзаются трейты, юзер создаётся тоже в контроллере, как и валидируются данные.
попробуй "composer dump-autoload"
Объясните, почему логика стандартной аутентификации в laravel описана в контроллере? Почему не используется сервис? И правильно ли использовать дефолтную аутентификацию, или лучше описать свою, либо есть популярные пакеты? Как поступаете вы?
Спасибо!
На сколько я успел понять, обратиться (получить экземпляр) модели можно несколькими способами:
1. Через фасад Illuminate\Support\Facades\DB: $model = Illuminate\Support\Facades\DB::table('table_name');
2. Просто создать эксемпляр модели: $model = new ModelName();
3. Переопределить метод __construct() контроллера, и передать в него экземпляр модели: public function __construct(Model $model) { $this->model = $model; }
4. Через статические методы модели, наприме Model::find()...
Какой способ правильный, чего придерживаетесь вы?