А если например, сервис должен отправить мейл с кодом активации это из одного контроллера при регистрации, а затем проверить, что этот код введенный в ссылке из письма верен это конечно в другом контроллера. И общее во всем этом это таблица с кодами активации это вообще один сервис или два, или вообще лучше без сервиса и просто дергать в контроллерах этих нужные модельки?
Это либо один сервис, либо без сервиса. Все зависит от кода.
Подписку можно отменить из ЛК юзера и из Админки, логика удаления очень похожа. Ну просто типа $user->subscription->cancel() хотя ну мало ли могут быть нюансы разные для юзера и админа. Скажем еще что то перед этим проверить или после этого обновить. Это сервис желателен или достаточно опять же в двух контроллерах просто делать что нужно и дергать $user->subscription->cancel() ?
Если это одна строка, мне кажется, что можно и без сервиса сделать.
]]>2) Подписку можно отменить из ЛК юзера и из Админки, логика удаления очень похожа. Ну просто типа $user->subscription->cancel() хотя ну мало ли могут быть нюансы разные для юзера и админа. Скажем еще что то перед этим проверить или после этого обновить. Это сервис желателен или достаточно опять же в двух контроллерах просто делать что нужно и дергать $user->subscription->cancel() ?
Как четко понять что нужен именно сервис?
]]>namespace App\Services;
class MyService
где этот сервис класс располагать в дереве проекта(сам файл)
Думаю чаще лучше в app\Services.
Делать его общим для всех или для каждого контролёра свой
Разделение скорее по логике должно быть, а переиспользовать код можно в любом контроллере, команде и т.д.
Как заставить PHPStorm его видеть и использовать в подсказках
PHPStorm его видит сразу, методы подсказывает как только внедряешь сервис класс.
]]>