theloftstore/app/Providers/AppServiceProvider.php

65 lines
2.3 KiB
PHP

<?php
namespace Vanguard\Providers;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\ServiceProvider;
use Vanguard\Repositories\Country\CountryRepository;
use Vanguard\Repositories\Country\EloquentCountry;
use Vanguard\Repositories\Permission\EloquentPermission;
use Vanguard\Repositories\Permission\PermissionRepository;
use Vanguard\Repositories\Role\EloquentRole;
use Vanguard\Repositories\Role\RoleRepository;
use Vanguard\Repositories\Session\DbSession;
use Vanguard\Repositories\Session\SessionRepository;
use Vanguard\Repositories\User\EloquentUser;
use Vanguard\Repositories\User\UserRepository;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*/
public function boot(): void
{
Carbon::setLocale(config('app.locale'));
config(['app.name' => setting('app_name')]);
\Illuminate\Database\Schema\Builder::defaultStringLength(191);
Factory::guessFactoryNamesUsing(function (string $modelName) {
return 'Database\Factories\\' . class_basename($modelName) . 'Factory';
});
\Illuminate\Pagination\Paginator::useBootstrap();
// Register Microsoft Socialite driver
$this->app->make('Laravel\Socialite\Contracts\Factory')->extend('microsoft', function ($app) {
$config = $app['config']['services.microsoft'];
return new \SocialiteProviders\Microsoft\Provider(
$app['request'],
$config['client_id'],
$config['client_secret'],
$config['redirect']
);
});
}
/**
* Register any application services.
*/
public function register(): void
{
$this->app->singleton(UserRepository::class, EloquentUser::class);
$this->app->singleton(RoleRepository::class, EloquentRole::class);
$this->app->singleton(PermissionRepository::class, EloquentPermission::class);
$this->app->singleton(SessionRepository::class, DbSession::class);
$this->app->singleton(CountryRepository::class, EloquentCountry::class);
if ($this->app->environment('local')) {
$this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
$this->app->register(\Barryvdh\Debugbar\ServiceProvider::class);
}
}
}