private function initialize($request = null)
    {
        // Store a reference to the database object
        // so the database connection can be reused during tests
        $this->oldDb = null;
        if (isset($this->app['db']) && $this->app['db']->connection()) {
            $this->oldDb = $this->app['db'];
        }

        $this->app = $this->kernel = $this->loadApplication();

        // Set the request instance for the application,
        if (is_null($request)) {
            $appConfig = require $this->module->config['project_dir'] . 'config/app.php';
            $request = SymfonyRequest::create($appConfig['url']);
        }
        $this->app->instance('request', Request::createFromBase($request));

        // Reset the old database after all the service providers are registered.
        if ($this->oldDb) {
            $this->app['events']->listen('bootstrapped: Illuminate\Foundation\Bootstrap\RegisterProviders', function () {
                $this->app->singleton('db', function () {
                    return $this->oldDb;
                });
            });
        }

        $this->app->make('Illuminate\Contracts\Http\Kernel')->bootstrap();

        // Record all triggered events by adding a wildcard event listener
        // Since Laravel 5.4 wildcard event handlers receive the event name as the first argument,
        // but for earlier Laravel versions the firing() method of the event dispatcher should be used
        // to determine the event name.
        if (method_exists($this->app['events'], 'firing')) {
            $listener = function () {
                $this->triggeredEvents[] = $this->normalizeEvent($this->app['events']->firing());
            };
        } else {
            $listener = function ($event) {
                $this->triggeredEvents[] = $this->normalizeEvent($event);
            };
        }
        $this->app['events']->listen('*', $listener);

        // Replace the Laravel exception handler with our decorated exception handler,
        // so exceptions can be intercepted for the disable_exception_handling functionality.
        $decorator = new ExceptionHandlerDecorator($this->app['Illuminate\Contracts\Debug\ExceptionHandler']);
        $decorator->exceptionHandlingDisabled($this->exceptionHandlingDisabled);
        $this->app->instance('Illuminate\Contracts\Debug\ExceptionHandler', $decorator);

        if ($this->module->config['disable_middleware'] || $this->middlewareDisabled) {
            $this->app->instance('middleware.disable', true);
        }

        if ($this->module->config['disable_events'] || $this->eventsDisabled) {
            $this->mockEventDispatcher();
        }

        if ($this->module->config['disable_model_events'] || $this->modelEventsDisabled) {
            Model::unsetEventDispatcher();
        }

        $this->module->setApplication($this->app);
    }
private function initialize($request = null)
    {
        // Store a reference to the database object
        // so the database connection can be reused during tests
        $this->oldDb = null;
        if (isset($this->app['db']) && $this->app['db']->connection()) {
            $this->oldDb = $this->app['db'];
        }

        $this->app = $this->kernel = $this->loadApplication();

        // Set the request instance for the application,
        if (is_null($request)) {
            $appConfig = require $this->module->config['project_dir'] . 'config/app.php';
            $request = SymfonyRequest::create($appConfig['url']);
        }
        $this->app->instance('request', Request::createFromBase($request));

        // Reset the old database after all the service providers are registered.
        if ($this->oldDb) {
            $this->app['events']->listen('bootstrapped: Illuminate\Foundation\Bootstrap\RegisterProviders', function () {
                $this->app->singleton('db', function () {
                    return $this->oldDb;
                });
            });
        }

        $this->app->make('Illuminate\Contracts\Http\Kernel')->bootstrap();

        // Record all triggered events by adding a wildcard event listener
        // Since Laravel 5.4 wildcard event handlers receive the event name as the first argument,
        // but for earlier Laravel versions the firing() method of the event dispatcher should be used
        // to determine the event name.
        if (method_exists($this->app['events'], 'firing')) {
            $listener = function () {
                $this->triggeredEvents[] = $this->normalizeEvent($this->app['events']->firing());
            };
        } else {
            $listener = function ($event) {
                $this->triggeredEvents[] = $this->normalizeEvent($event);
            };
        }
        $this->app['events']->listen('*', $listener);

        // Replace the Laravel exception handler with our decorated exception handler,
        // so exceptions can be intercepted for the disable_exception_handling functionality.
        $decorator = new ExceptionHandlerDecorator($this->app['Illuminate\Contracts\Debug\ExceptionHandler']);
        $decorator->exceptionHandlingDisabled($this->exceptionHandlingDisabled);
        $this->app->instance('Illuminate\Contracts\Debug\ExceptionHandler', $decorator);

        if ($this->module->config['disable_middleware'] || $this->middlewareDisabled) {
            $this->app->instance('middleware.disable', true);
        }

        if ($this->module->config['disable_events'] || $this->eventsDisabled) {
            $this->mockEventDispatcher();
        }

        if ($this->module->config['disable_model_events'] || $this->modelEventsDisabled) {
            Model::unsetEventDispatcher();
        }

        $this->module->setApplication($this->app);
    }
private function initialize ( $ request = null ) { // Store a reference to the database object // so the database connection can be reused during tests $ this -> oldDb = null ; if ( isset ( $ this -> app [ 'db' ] ) && $ this -> app [ 'db' ] -> connection ( ) ) { $ this -> oldDb = $ this -> app [ 'db' ] ; } $ this -> app = $ this -> kernel = $ this -> loadApplication ( ) ; // Set the request instance for the application, if ( is_null ( $ request ) ) { $ appConfig = require $ this -> module -> config [ 'project_dir' ] . 'config/app.php' ; $ request = SymfonyRequest :: create ( $ appConfig [ 'url' ] ) ; } $ this -> app -> instance ( 'request' , Request :: createFromBase ( $ request ) ) ; // Reset the old database after all the service providers are registered. if ( $ this -> oldDb ) { $ this -> app [ 'events' ] -> listen ( 'bootstrapped: Illuminate\Foundation\Bootstrap\RegisterProviders' , function ( ) { $ this -> app -> singleton ( 'db' , function ( ) { return $ this -> oldDb ; } ) ; } ) ; } $ this -> app -> make ( 'Illuminate\Contracts\Http\Kernel' ) -> bootstrap ( ) ; // Record all triggered events by adding a wildcard event listener // Since Laravel 5.4 wildcard event handlers receive the event name as the first argument, // but for earlier Laravel versions the firing() method of the event dispatcher should be used // to determine the event name. if ( method_exists ( $ this -> app [ 'events' ] , 'firing' ) ) { $ listener = function ( ) { $ this -> triggeredEvents [ ] = $ this -> normalizeEvent ( $ this -> app [ 'events' ] -> firing ( ) ) ; } ; } else { $ listener = function ( $ event ) { $ this -> triggeredEvents [ ] = $ this -> normalizeEvent ( $ event ) ; } ; } $ this -> app [ 'events' ] -> listen ( '*' , $ listener ) ; // Replace the Laravel exception handler with our decorated exception handler, // so exceptions can be intercepted for the disable_exception_handling functionality. $ decorator = new ExceptionHandlerDecorator ( $ this -> app [ 'Illuminate\Contracts\Debug\ExceptionHandler' ] ) ; $ decorator -> exceptionHandlingDisabled ( $ this -> exceptionHandlingDisabled ) ; $ this -> app -> instance ( 'Illuminate\Contracts\Debug\ExceptionHandler' , $ decorator ) ; if ( $ this -> module -> config [ 'disable_middleware' ] || $ this -> middlewareDisabled ) { $ this -> app -> instance ( 'middleware.disable' , true ) ; } if ( $ this -> module -> config [ 'disable_events' ] || $ this -> eventsDisabled ) { $ this -> mockEventDispatcher ( ) ; } if ( $ this -> module -> config [ 'disable_model_events' ] || $ this -> modelEventsDisabled ) { Model :: unsetEventDispatcher ( ) ; } $ this -> module -> setApplication ( $ this -> app ) ; }
Initialize the Laravel framework.

@param SymfonyRequest $request
Initialize the Laravel framework .