Files
test_bellis/laravel/app/Providers/AppServiceProvider.php
2026-02-18 19:54:52 +07:00

53 lines
1.3 KiB
PHP

<?php
namespace App\Providers;
use App\Contracts\FilterFactoryInterface;
use App\Contracts\QueryFilterPipelineInterface;
use App\Contracts\TaskServiceInterface;
use App\Filters\Factory\FilterFactory;
use App\Pipelines\QueryFilterPipeline;
use App\Services\TaskService;
use Illuminate\Pipeline\Pipeline;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
$this->registerFilters();
$this->registerPipeline();
$this->app->bind(TaskServiceInterface::class, TaskService::class);
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
//
}
private function registerFilters(): void
{
$this->app->bind(FilterFactoryInterface::class, function () {
return new FilterFactory(
config('filters.available', [])
);
});
}
private function registerPipeline(): void
{
$this->app->bind(QueryFilterPipelineInterface::class, function ($app) {
return new QueryFilterPipeline(
$app->make(Pipeline::class),
$app->make(FilterFactoryInterface::class)
);
});
}
}