fipamo/app/Providers/FipamoServiceProvider.php
ro 064407aa88
implemented member repo class
a class for members was needed for long term handling of member
functions like login, update, status checking, etc so that class was
created and the AuthService class was removed as it was redundant and
it's functionaity moved to the member class
2024-05-13 12:06:05 -06:00

106 lines
3.4 KiB
PHP

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
//Repos
use App\Repositories\PageRepository;
use App\Interfaces\PageRepositoryInterface;
use App\Repositories\MemberRepository;
use App\Interfaces\MemberRepositoryInterface;
//Asset Services
use App\Services\Assets\AssetService;
use App\Services\Assets\DocService;
use App\Services\Assets\FileUploadService;
use App\Services\Assets\RenderService;
//Data Services
use App\Services\Data\SettingsService;
use App\Services\Data\ContentService;
use App\Services\Data\PaginateService;
use App\Services\Data\ThemeService;
use App\Services\Data\SortingService;
//Upkeep Services
use App\Services\UpKeep\MaintenanceService;
use App\Services\UpKeep\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(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);
$this->app->bind(MemberRepositoryInterface::class, MemberRepository::class);
}
}