Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 22.11.2017 14:09:04

Вопросы по использованию сервис классов

Статья очень понравилась! Но есть один вопрос который мучал и до статьи: в пункте 2 говорится о выносе бизнес логики в сервис-класс. А где этот сервис класс располагать в дереве проекта(сам файл)? Делать его общим для всех или для каждого контролёра свой? Как заставить PHPStorm его видеть и использовать в подсказках?
Просто я понимаю что в Laravel всё на своём месте, а тут бац и создаю я свой файл ни к селу ни к городу... Много где встречал разные методы, но не один не был удобен и красив.

Не в сети

#2 22.11.2017 15:15:55

Re: Вопросы по использованию сервис классов

где этот сервис класс располагать в дереве проекта(сам файл)

Думаю чаще лучше в app\Services.

Делать его общим для всех или для каждого контролёра свой

Разделение скорее по логике должно быть, а переиспользовать код можно в любом контроллере, команде и т.д.

Как заставить PHPStorm его видеть и использовать в подсказках

PHPStorm его видит сразу, методы подсказывает как только внедряешь сервис класс.

Не в сети

#3 22.11.2017 15:18:29

Re: Вопросы по использованию сервис классов

А как подключить к Laravel? или тоже автоматом всё увидит?

Не в сети

#4 22.11.2017 15:28:47

Re: Вопросы по использованию сервис классов

Если пространство имен и путь к файлу, имя класса и файла совпадают, то IoC автоматически регистрирует эти классы. Например, для файла app\Services\MyService.php:

PHP
namespace App\Services;

class 
MyService

Не в сети

#5 22.11.2017 16:05:05

htclog81
Откуда: Москва
Сообщений: 192
Сайт

Re: Вопросы по использованию сервис классов

1) А если например, сервис должен отправить мейл с кодом активации это из одного контроллера при регистрации, а затем проверить, что этот код введенный в ссылке из письма верен это конечно в другом контроллера. И общее во всем этом это таблица с кодами активации это вообще один сервис или два, или вообще лучше без сервиса и просто дергать в контроллерах этих нужные модельки?

2) Подписку можно отменить из ЛК юзера и из Админки, логика удаления очень похожа. Ну просто типа $user->subscription->cancel() хотя ну мало ли могут быть нюансы разные для юзера и админа. Скажем еще что то перед этим проверить или после этого обновить. Это сервис желателен или достаточно опять же в двух контроллерах просто делать что нужно и дергать  $user->subscription->cancel() ?

Как четко понять что нужен именно сервис?

Не в сети

#6 22.11.2017 16:37:39

Re: Вопросы по использованию сервис классов

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

Это либо один сервис, либо без сервиса. Все зависит от кода.

Подписку можно отменить из ЛК юзера и из Админки, логика удаления очень похожа. Ну просто типа $user->subscription->cancel() хотя ну мало ли могут быть нюансы разные для юзера и админа. Скажем еще что то перед этим проверить или после этого обновить. Это сервис желателен или достаточно опять же в двух контроллерах просто делать что нужно и дергать  $user->subscription->cancel() ?

Если это одна строка, мне кажется, что можно и без сервиса сделать.

Не в сети

Подвал раздела