for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Created on 12/02/18 by enea dhack.
*/
namespace Enea\Authorization;
use Enea\Authorization\Contracts\PermissionContract;
use Enea\Authorization\Contracts\RoleContract;
use Enea\Authorization\Support\Config;
use Illuminate\Support\ServiceProvider;
class AuthorizationServiceProvider extends ServiceProvider
{
* Bootstrap the application services.
*
* @return void
public function boot()
$this->registerBindings();
}
* Register the application services.
public function register()
$this->app->register(EventServiceProvider::class);
$this->publish();
* Bind contracts with concrete objects.
protected function registerBindings()
$this->configDriver();
$this->app->bind(PermissionContract::class, Config::permissionModel());
$this->app->bind(RoleContract::class, Config::roleModel());
private function publish(): void
$this->mergeConfigFrom($this->path('config/authorization.php'), 'authorization');
$this->publishes([$this->path('database/migrations/CreateLaravelAuthorizationTables.php') => database_path('migrations')]);
private function path(string $path): string
return __DIR__ . "/../{$path}";
private function configDriver(): void
(new DriversResolver($this->app))->make();