43 lines
1.3 KiB
PHP
43 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Domains\Translation\Providers\DatabaseTranslationLoader;
|
|
use App\Domains\Workspace\Models\Workspace;
|
|
use App\Domains\Workspace\Policies\WorkspacePolicy;
|
|
use Illuminate\Support\Facades\Gate;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class AppServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* Register any application services.
|
|
*/
|
|
public function register(): void
|
|
{
|
|
$this->app->singleton('translation.loader', function ($app) {
|
|
return new DatabaseTranslationLoader;
|
|
});
|
|
|
|
// TranslationServiceProvider is deferred and re-binds translation.loader
|
|
// when it resolves. We extend 'translator' to swap in our DB loader after
|
|
// the translator instance is created.
|
|
$this->app->extend('translator', function ($translator, $app) {
|
|
$loader = new DatabaseTranslationLoader;
|
|
$reflection = new \ReflectionProperty($translator, 'loader');
|
|
$reflection->setAccessible(true);
|
|
$reflection->setValue($translator, $loader);
|
|
|
|
return $translator;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Bootstrap any application services.
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
Gate::policy(Workspace::class, WorkspacePolicy::class);
|
|
}
|
|
}
|