104 lines
3.3 KiB
PHP
104 lines
3.3 KiB
PHP
<?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\FileUploadService;
|
|
use App\Services\RenderService;
|
|
use App\Services\SortingService;
|
|
use App\Services\AssetService;
|
|
use App\Services\MaintenanceService;
|
|
use App\Services\InitService;
|
|
|
|
class FipamoServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register services.
|
|
*/
|
|
public function register(): void
|
|
{
|
|
//services
|
|
$this->app->bind(SettingsService::class, function ($app) {
|
|
return new SettingsService(new DocService(), new ContentService());
|
|
});
|
|
|
|
$this->app->bind(AuthService::class, function ($app) {
|
|
return new AuthService(new SettingsService(new DocService(), new ContentService()));
|
|
});
|
|
|
|
$this->app->bind(ContentService::class, function ($app) {
|
|
return new ContentService();
|
|
});
|
|
|
|
$this->app->bind(ThemeService::class, function ($app) {
|
|
return new ThemeService(new SettingsService(new DocService(), new ContentService()));
|
|
});
|
|
|
|
$this->app->bind(PaginateService::class, function ($app) {
|
|
return new PaginateService(new ContentService());
|
|
});
|
|
|
|
$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 ContentService(),
|
|
new ThemeService(new SettingsService(new DocService(), new ContentService()))
|
|
),
|
|
new SettingsService(new DocService(), new ContentService()),
|
|
new ContentService(),
|
|
);
|
|
});
|
|
|
|
$this->app->bind(SortingService::class, function ($app) {
|
|
return new SortingService(
|
|
new SettingsService(new DocService(), new ContentService()),
|
|
new ContentService(),
|
|
new ThemeService(new SettingsService(new DocService(), new ContentService()))
|
|
);
|
|
});
|
|
|
|
$this->app->bind(AssetService::class, function ($app) {
|
|
return new AssetService(
|
|
new ThemeService(
|
|
new SettingsService(new DocService(), new ContentService())
|
|
)
|
|
);
|
|
});
|
|
|
|
$this->app->bind(MaintenanceService::class, function ($app) {
|
|
return new MaintenanceService(
|
|
new SettingsService(new DocService(), new ContentService())
|
|
);
|
|
});
|
|
|
|
$this->app->bind(InitService::class, function ($app) {
|
|
return new InitService(new DocService());
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Bootstrap services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
$this->app->bind(PageRepositoryInterface::class, PageRepository::class);
|
|
}
|
|
}
|