/home/mip/mip/app/Modules/EmployerServiceProvider.php
<?php

namespace QxCMS\Modules;

use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;

class EmployerServiceProvider extends ServiceProvider
{

    protected $namespace = 'QxCMS\Modules';

    /**
     * Bootstrap the application services.
     *
     * @return void
     */
    public function boot(Router $router)
    {
        $modules = config('modules.modules');
        array_filter($modules, function($module) use ($router) {
            if($module=='Employer')
            {
                $this->registerModuleRoute($router, $module);
                $this->registerModuleView($module);
            }
        });
        /*\DB::listen(function($sql) {
            var_dump($sql);
        });*/
    }

    /**
     * Register the application services.
     *
     * @return void
     */
    public function register()
    {
        $this->setEmployerInterface();
        $this->mergeConfigFrom(
            __DIR__.'/tables.php', 'tables'
        );
    }

    public function registerModuleView($module)
    {
        return $this->loadViewsFrom(__DIR__."/$module/Views", $module);
    }

    public function registerModuleRoute($router, $module)
    {
        $router->group([
            'namespace' => $this->namespace.'\\'.$module.'\\'.'Controllers',
            'middleware' => 'web',
            'prefix' => strtolower($module)
        ], function ($router) use ($module) {
                require __DIR__."/$module/routes.php";
        });
    }
    
    public function setEmployerInterface()
    {
        /*$this->app->bind(
            \QxCMS\Modules\Client\Repositories\Settings\Roles\RoleRepositoryInterface::class,
            \QxCMS\Modules\Client\Repositories\Settings\Roles\RoleRepository::class
        );*/
    }
}