src/Providers/RepositoryServiceProvider.php
<?php
declare(strict_types=1);
namespace Rinvex\Repository\Providers;
use Illuminate\Support\ServiceProvider;
use Rinvex\Support\Traits\ConsoleTools;
use Rinvex\Repository\Listeners\RepositoryEventListener;
class RepositoryServiceProvider extends ServiceProvider
{
use ConsoleTools;
/**
* The repository alias pattern.
*
* @var string
*/
protected $repositoryAliasPattern = '{{class}}Contract';
/**
* {@inheritdoc}
*/
public function register()
{
// Merge config
$this->mergeConfigFrom(realpath(__DIR__.'/../../config/config.php'), 'rinvex.repository');
// Register the event listener
$this->app->bind('rinvex.repository.listener', RepositoryEventListener::class);
}
/**
* {@inheritdoc}
*/
public function boot()
{
// Publish config
$this->publishesConfig('rinvex/laravel-repositories');
// Subscribe the registered event listener
$this->app['events']->subscribe('rinvex.repository.listener');
}
}