Size: a a a

2020 March 16

YV

Yushkevich Vitaly in Laravel Pro
Это при условии, что у тебя интерфейс есть и архитектура спроектирована ок. Если нет, значит нужно вернутся на этот шаг и исправить ошибки проектирования. Ну либо подписать костылями через if else
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
1) делаешь отдельный middleware
2) в нем делаешь биндинг нужного сервиса
3) работаешь через интерфейс
при твоем способе 1) пункт можно исключить, как я понял в зависимости от авторизации ты предлагаешь резолвить разную реализацию сервиса
источник

YV

Yushkevich Vitaly in Laravel Pro
Да. А ты хочешь резолвить в каждом контроллере где надо? Или в сервис провайдер это тащить? Ну так это не совсем их зона ответственности, а с контроллером так и копи паста будет
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
Да. А ты хочешь резолвить в каждом контроллере где надо? Или в сервис провайдер это тащить? Ну так это не совсем их зона ответственности, а с контроллером так и копи паста будет
тогда поясни для чего тебе особый middleware, что ты в нем собрался делать?
источник

YV

Yushkevich Vitaly in Laravel Pro
Yushkevich Vitaly
1) делаешь отдельный middleware
2) в нем делаешь биндинг нужного сервиса
3) работаешь через интерфейс
Ммм..  вроде бы тут написал
источник

YV

Yushkevich Vitaly in Laravel Pro
При этом у тебя единая точка входа, которая отвечает за авторизацию / инит и проверку нужных данных в куках, и отвечает за выбор реализации конкретной фабрики для работы логики, зависимой от этого выбора
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
При этом у тебя единая точка входа, которая отвечает за авторизацию / инит и проверку нужных данных в куках, и отвечает за выбор реализации конкретной фабрики для работы логики, зависимой от этого выбора
т.е. ты на посредника возложил роль Service Provider, т.е. его назначение через метод register регистрировать зависимости, что то тут не так, это в корне не верно
источник

YV

Yushkevich Vitaly in Laravel Pro
Ммм. Роль сервис провайдера немного в другом как бы, не?
источник

YV

Yushkevich Vitaly in Laravel Pro
И как бы я сказал немного другое
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
Ммм. Роль сервис провайдера немного в другом как бы, не?
в методе register ты делаешь привязку интерфейсов к реализации, это я и назвал регистрацией зависимостей (возможно это надо было назвать по другому)
но все равно делать bind в посреднике это кардинально не верно
источник

YV

Yushkevich Vitaly in Laravel Pro
Egor Gruzdev
в методе register ты делаешь привязку интерфейсов к реализации, это я и назвал регистрацией зависимостей (возможно это надо было назвать по другому)
но все равно делать bind в посреднике это кардинально не верно
Почитай про контекстный биндинг
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
Почитай про контекстный биндинг
ссылку дай, пжс
источник

YV

Yushkevich Vitaly in Laravel Pro
Офф доки
источник

YV

Yushkevich Vitaly in Laravel Pro
источник

YV

Yushkevich Vitaly in Laravel Pro
Насколько там детально - не помню. Но с этого можешь начать.
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
Насколько там детально - не помню. Но с этого можешь начать.
и где там про регистрацию bind в посреднике?
источник

YV

Yushkevich Vitaly in Laravel Pro
Если там не понятно описан подход - загугли другое описание сам, плиз.
источник

YV

Yushkevich Vitaly in Laravel Pro
Я достаточно детально написал, что я предлагаю сделать и какие подходы использовать. Контекстный биндинг - один из них.
источник

EG

Egor Gruzdev in Laravel Pro
Yushkevich Vitaly
Если там не понятно описан подход - загугли другое описание сам, плиз.
вопрос не про "Контекстный биндинг" (Contextual Binding) или другой способ получение реализации класса на основе интерфейса.
вопрос в том зачем нужен посредник пункт 1), твоего предложения, чем он будет заниматься?
источник

YV

Yushkevich Vitaly in Laravel Pro
Давай ещё:
определять авторизацию, проверять наличие нужных данных (или устанавливать) в куках для второй ветки авторизации, определять «контекст» (если тебе так понятнее), по которому будет биндится та илм иная реализация.
Из контроллеров работа будет строится через интерфейс.
Для связывания контракта и реализации применяется контекстный биндинг.
источник