Repository URL to install this package:
|
Version:
0.2.1 ▾
|
<?php namespace Modules\Courses\Providers;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Contracts\Auth\Access\Gate as GateContract;
use Modules\Courses\Http\Controllers\CoursesController;
use Modules\Courses\Policies\CoursesPolicy;
class CoursesServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
CoursesController::class => CoursesPolicy::class
];
/**
* Boot the application events.
*
* @return void
*/
public function boot(GateContract $gate)
{
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
parent::registerPolicies($gate);
}
/**
* Register translations.
*
* @return void
*/
public function registerTranslations()
{
$langPath = base_path('resources/lang/modules/courses');
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, 'courses');
$this->loadTranslationsFrom($langPath, 'slides');
} else {
$this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'courses');
$this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'slides');
}
}
/**
* Register config.
*
* @return void
*/
protected function registerConfig()
{
$this->publishes([
__DIR__ . '/../Config/config.php' => config_path('courses.php'),
]);
$this->mergeConfigFrom(
__DIR__ . '/../Config/config.php', 'courses'
);
}
/**
* Register views.
*
* @return void
*/
public function registerViews()
{
$viewPath = base_path('resources/views/modules/courses');
$sourcePath = __DIR__ . '/../Resources/views';
$this->publishes([
$sourcePath => $viewPath
]);
$this->loadViewsFrom([$viewPath, $sourcePath], 'courses');
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
// Courses Repository
$this->app->bind('Modules\Courses\Contracts\Repositories\CourseRepository',
'Modules\Courses\Repositories\Eloquent\CourseRepositoryEloquent');
// Slides Repository
$this->app->bind('Modules\Courses\Contracts\Repositories\SlideRepository',
'Modules\Courses\Repositories\Eloquent\SlideRepositoryEloquent');
// Analytics Repository
$this->app->bind('Modules\Courses\Contracts\Repositories\AnalyticRepository',
'Modules\Courses\Repositories\Eloquent\AnalyticRepositoryEloquent');
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array();
}
}