casadoc/server/app/Providers/AppServiceProvider.php

69 lines
2.3 KiB
PHP

<?php
namespace Vanguard\Providers;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Factories\Factory;
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;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
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();
$this->bootSocialite();
}
protected function bootSocialite()
{
$socialite = $this->app->make(\Laravel\Socialite\Contracts\Factory::class);
$socialite->extend(
'apple',
fn ($app) => $socialite->buildProvider(\SocialiteProviders\Apple\Provider::class, $app['config']['services.apple'])
);
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$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);
}
}
}