laravel-roles/src/PermissionsServiceProvider.php

63 lines
1.8 KiB
PHP
Raw Normal View History

2025-06-11 13:44:39 +00:00
<?php
2025-06-15 09:56:28 +00:00
namespace Blax\Roles;
class PermissionsServiceProvider extends \Illuminate\Support\ServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
2025-06-16 05:37:35 +00:00
//
2025-06-15 09:56:28 +00:00
}
/**
* Bootstrap the application events.
*
* @return void
*/
public function boot()
{
2025-06-16 05:37:35 +00:00
$this->offerPublishing();
$this->registerModelBindings();
2025-06-15 09:56:28 +00:00
}
/**
* Set up the publishing of configuration files.
*
* @return void
*/
protected function offerPublishing()
{
if (! $this->app->runningInConsole()) {
return;
}
if (! function_exists('config_path')) {
// function not available and 'publish' not relevant in Lumen
return;
}
$this->publishes([
2025-06-16 05:37:35 +00:00
__DIR__.'/../config/roles.php' => config_path('roles.php'),
], 'roles-config');
2025-06-15 09:56:28 +00:00
$this->publishes([
2025-06-16 05:37:35 +00:00
__DIR__.'/../database/migrations/create_blax_role_tables.php.stub' => $this->getMigrationFileName('create_blax_role_tables.php'),
], 'roles-migrations');
}
protected function registerModelBindings(): void
{
$this->app->bind(\Blax\Roles\Models\Role::class, fn ($app) => $app->make($app->config['roles.models.role']));
$this->app->bind(\Blax\Roles\Models\RoleMember::class, fn ($app) => $app->make($app->config['roles.models.role_member']));
$this->app->bind(\Blax\Roles\Models\RolePermission::class, fn ($app) => $app->make($app->config['roles.models.role_permission']));
$this->app->bind(\Blax\Roles\Models\Permission::class, fn ($app) => $app->make($app->config['roles.models.permission']));
$this->app->bind(\Blax\Roles\Models\PermissionUsage::class, fn ($app) => $app->make($app->config['roles.models.permission_usage']));
2025-06-15 09:56:28 +00:00
}
}