fipamo/app/Providers/FipamoServiceProvider.php

87 lines
2.5 KiB
PHP
Raw Normal View History

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\Repositories\PageRepository;
use App\Interfaces\PageRepositoryInterface;
use App\Services\SettingsService;
use App\Services\AuthService;
use App\Services\ContentService;
use App\Services\PaginateService;
use App\Services\ThemeService;
use App\Services\DocService;
use App\Services\StringService;
use App\Services\FileUploadService;
use App\Services\RenderService;
use App\Services\SortingService;
class FipamoServiceProvider extends ServiceProvider
{
/**
* Register services.
*/
public function register(): void
{
//services
$this->app->bind(SettingsService::class, function ($app) {
return new SettingsService(new DocService());
});
$this->app->bind(AuthService::class, function ($app) {
return new AuthService(new SettingsService(new DocService()));
});
$this->app->bind(ContentService::class, function ($app) {
return new ContentService();
});
$this->app->bind(ThemeService::class, function ($app) {
return new ThemeService(new SettingsService(new DocService()));
});
$this->app->bind(PaginateService::class, function ($app) {
return new PaginateService(new ContentService());
});
$this->app->bind(StringService::class, function ($app) {
return new StringService();
});
$this->app->bind(DocService::class, function ($app) {
return new DocService();
});
$this->app->bind(FileUploadService::class, function ($app) {
return new FileUploadService();
});
$this->app->bind(RenderService::class, function ($app) {
return new RenderService(
new SortingService(
new SettingsService(new DocService()),
new ContentService(),
new StringService(),
),
new SettingsService(new DocService())
);
});
$this->app->bind(SortingService::class, function ($app) {
return new SortingService(
new SettingsService(new DocService()),
new ContentService(),
new StringService(),
);
});
}
/**
* Bootstrap services.
*/
public function boot(): void
{
$this->app->bind(PageRepositoryInterface::class, PageRepository::class);
}
}