forge/app/Providers/AppServiceProvider.php

53 lines
1.4 KiB
PHP
Raw Normal View History

2024-05-13 18:55:34 -04:00
<?php
namespace App\Providers;
use App\Models\ModDependency;
use App\Models\ModVersion;
use App\Models\User;
use App\Observers\ModDependencyObserver;
use App\Observers\ModVersionObserver;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Number;
2024-05-13 18:55:34 -04:00
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
// Allow mass assignment for all models. Be careful!
Model::unguard();
// Register observers.
ModVersion::observe(ModVersionObserver::class);
ModDependency::observe(ModDependencyObserver::class);
// This gate determines who can access the Pulse dashboard.
Gate::define('viewPulse', function (User $user) {
return $user->isAdmin();
});
// Register a number macro to format download numbers.
Number::macro('downloads', function (int|float $number) {
return Number::forHumans(
$number,
$number > 1000000 ? 2 : ($number > 1000 ? 1 : 0),
maxPrecision: null,
abbreviate: true
);
});
2024-05-13 18:55:34 -04:00
}
}