AppServiceProvider.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace App\Providers;
  3. use App\Models\SparePartOrder;
  4. use App\Observers\SparePartOrderObserver;
  5. use App\Services\DiskSpaceMonitor;
  6. use Illuminate\Pagination\Paginator;
  7. use Illuminate\Support\Facades\Blade;
  8. use Illuminate\Support\Facades\URL;
  9. use Illuminate\Support\Facades\View;
  10. use Illuminate\Support\ServiceProvider;
  11. class AppServiceProvider extends ServiceProvider
  12. {
  13. /**
  14. * Register any application services.
  15. */
  16. public function register(): void
  17. {
  18. //
  19. }
  20. /**
  21. * Bootstrap any application services.
  22. */
  23. public function boot(): void
  24. {
  25. Paginator::useBootstrapFive();
  26. if(config('app.force_https')) {
  27. URL::forceScheme('https');
  28. }
  29. Blade::if('role', fn($roles) => hasRole($roles));
  30. Blade::if('permission', fn($permission) => hasPermission($permission));
  31. Blade::if('anypermission', fn($permissions) => hasAnyPermission($permissions));
  32. Blade::if('fieldView', fn($module, $field, $entity = null) => canViewField($module, $field, $entity));
  33. Blade::if('fieldUpdate', fn($module, $field, $entity = null) => canUpdateField($module, $field, $entity));
  34. // Регистрация Observer для автоматической обработки дефицитов
  35. SparePartOrder::observe(SparePartOrderObserver::class);
  36. View::composer('layouts.app', function ($view): void {
  37. $diskSpaceMonitor = app(DiskSpaceMonitor::class);
  38. $view->with('diskSpaceStatus', $diskSpaceMonitor->status());
  39. $view->with('diskSpaceMonitor', $diskSpaceMonitor);
  40. });
  41. }
  42. }