Size: a a a

Laravel для начинающих

2021 February 24

JV

Jan Van in Laravel для начинающих
Грубо говоря, получается следующее? Я почитаю об адаптерах, но "в целом и общем".

Web => Controller => Service => Adapter => Service => Controller => Web
API => Controller => Service => Adapter => Service => Controller => API
источник

JV

Jan Van in Laravel для начинающих
Ну, можно ещё (в некоторых планах есть использование команд):

Command => Service => Adapter => Service => Command
источник

JV

Jan Van in Laravel для начинающих
Я правильно понимаю, или где-то ошибся?
источник

SC

Sergey Chizhik in Laravel для начинающих
Jan Van
Грубо говоря, получается следующее? Я почитаю об адаптерах, но "в целом и общем".

Web => Controller => Service => Adapter => Service => Controller => Web
API => Controller => Service => Adapter => Service => Controller => API
Очень грубо говоря — да.

В частности, ты делаешь интерфейс, AwesomeInterface, под которым прячешь ApiAdapter1, ApiAdapter2, ApiAdapter3. Дальше, в зависимости от того что конкретно надо, ты можешь в DI засунуть нужный адаптер и обратиться через интерфейс или сделать какую-то фабрику
источник

JV

Jan Van in Laravel для начинающих
Sergey Chizhik
Очень грубо говоря — да.

В частности, ты делаешь интерфейс, AwesomeInterface, под которым прячешь ApiAdapter1, ApiAdapter2, ApiAdapter3. Дальше, в зависимости от того что конкретно надо, ты можешь в DI засунуть нужный адаптер и обратиться через интерфейс или сделать какую-то фабрику
Будем копаться. Спасибо @s_chizhik @sparkqy
источник

R#

Reset # Alexey S. in Laravel для начинающих
При условии что туда сущность одинаковая передается, конечно
источник

R#

Reset # Alexey S. in Laravel для начинающих
Если сущности разные, то просто ендпоинты отдельные,
источник

JV

Jan Van in Laravel для начинающих
Reset # Alexey S.
При условии что туда сущность одинаковая передается, конечно
В плане, получаемая от моего "сервиса" сущность? Ну, к примеру, User.
источник

R#

Reset # Alexey S. in Laravel для начинающих
Тогда как Сергей выше сказал
источник

МD

Максим Deblow in Laravel для начинающих
обновил ларавел микс и все полетело, как фиксануть?
источник

Y

YourPersonalGradeOfH... in Laravel для начинающих
Максим Deblow
обновил ларавел микс и все полетело, как фиксануть?
cli апи поменялось в 6 версии, скопируй команды из package.json в гитхабе laravel репозитория
источник

МD

Максим Deblow in Laravel для начинающих
YourPersonalGradeOfHeroin
cli апи поменялось в 6 версии, скопируй команды из package.json в гитхабе laravel репозитория
спасибо
источник

МD

Максим Deblow in Laravel для начинающих
в чем проблема?
источник

VP

Vasiliy Pivovarov in Laravel для начинающих
ты пытаешься поставить пакет глобально n которого нет или у тебя не поддерживается твоей версией npm
источник

МD

Максим Deblow in Laravel для начинающих
Vasiliy Pivovarov
ты пытаешься поставить пакет глобально n которого нет или у тебя не поддерживается твоей версией npm
спасибо
источник

JV

Jan Van in Laravel для начинающих
Sergey Chizhik
Очень грубо говоря — да.

В частности, ты делаешь интерфейс, AwesomeInterface, под которым прячешь ApiAdapter1, ApiAdapter2, ApiAdapter3. Дальше, в зависимости от того что конкретно надо, ты можешь в DI засунуть нужный адаптер и обратиться через интерфейс или сделать какую-то фабрику
Я тут подумал.
Как бы мне так ещё организоваться, и использовать адаптеры в зависимости от каких-то условий, на которые я повлиять, как бЭ особо и не могу? Фаза луны там, в какой позиции Сатурн, смотря от кого запрос пришёл, во сколько пришёл и всякое такое. Маршрут один, метод контроллера один. Сервис один. И пачка адаптеров. И всякое такое. Думаю что DI тут не особо подходит.
Есть ещё варианты? Ну так, навскидку.
источник

SC

Sergey Chizhik in Laravel для начинающих
Jan Van
Я тут подумал.
Как бы мне так ещё организоваться, и использовать адаптеры в зависимости от каких-то условий, на которые я повлиять, как бЭ особо и не могу? Фаза луны там, в какой позиции Сатурн, смотря от кого запрос пришёл, во сколько пришёл и всякое такое. Маршрут один, метод контроллера один. Сервис один. И пачка адаптеров. И всякое такое. Думаю что DI тут не особо подходит.
Есть ещё варианты? Ну так, навскидку.
Почему не подходит? Ты в DI можешь делать

$this->app->bind(Interface::class, function() {
   if (1) {
       return new Adapter1;
   } elseif (2)
       return new Adapter2;
   }
});


Или в где-то в другом сервисе, типа фабрики принимать решение и отдавать инстанс адаптера
источник

JV

Jan Van in Laravel для начинающих
Sergey Chizhik
Почему не подходит? Ты в DI можешь делать

$this->app->bind(Interface::class, function() {
   if (1) {
       return new Adapter1;
   } elseif (2)
       return new Adapter2;
   }
});


Или в где-то в другом сервисе, типа фабрики принимать решение и отдавать инстанс адаптера
А что делать если один API отваливается? Ну сдох и всё. Специфика такая, что ответ дать нужно с хоть какого-то. Главное чтобы было.
источник

SC

Sergey Chizhik in Laravel для начинающих
Jan Van
А что делать если один API отваливается? Ну сдох и всё. Специфика такая, что ответ дать нужно с хоть какого-то. Главное чтобы было.
Тогда ты с контроллера вызываешь сервис, который по очереди переберёт адаптеры и выдаст первый результат
источник

JV

Jan Van in Laravel для начинающих
Sergey Chizhik
Тогда ты с контроллера вызываешь сервис, который по очереди переберёт адаптеры и выдаст первый результат
Логично... Спасибо
источник