Помогите разобраться с контрактами (интерфейсами) и провайдерами.
Хочу сделать на их основе подгрузку каталога скажем брендов или скажем городов
Я делаю следующее
1) Создал контракт Contracts/Catalog.php
interface Catalog {
public function show();
}
2) Создал два сервиса Services/Catalog/BrandService.php и Services/Catalog/CityService.php
class BrandService implements Catalog {
public function show() {
dd('Каталог брендов');
}
}
class CityService implements Catalog {
public function show() {
dd('Каталог городов');
}
}
И вот дальше у меня тупняк. Хотел создать общий контроллер Http/Controllers/CatalogController.php
class CatalogController extends Controller {
function showBrand(BrandService $brand) {
return $brand->show();
}
function showCity(CityService $city) {
return $city->show();
}
}
Но вроде как советуют для каждого сервиса создавать контроллер свой. И далее биндить их в провайдер.
Или может стоить создать общий сервис
BaseCatalogController, который биндить через провайдер.
И ловить потом
Route::get('/catalog/city', [BaseCatalogController::class, 'city']);
Route::get('/catalog/brand', [BaseCatalogController::class, 'brand']);
Направьте, пожалуйста, на правильный подход в реализации :)