public function loadView( $data = [ ], $return = FALSE )
    {
        $retVal = NULL;
        //$extraData = $this->filter( self::ON_LOAD_EXTRA_DATA_FILTER, [ ] );

        $extra = [
            'route' => $this->_getRoute(),
        ];

        extract( $extra, EXTR_OVERWRITE );
        //extract( $extraData, EXTR_OVERWRITE );
        extract( $data, EXTR_OVERWRITE );

        $level = error_reporting();
        error_reporting( 0 );

        ob_start();

        if ( isset( $view ) )
        {
            $viewsDirEvent = new GetViewsDirEvent();

            $this->dispatcher->fire( Events::EVENT_GET_VIEWS_DIR, $viewsDirEvent );

            $viewDir = $viewsDirEvent->getViewsDir();

            if ( NULL === $viewDir )
            {
                throw new RawException( 'The views directory has not been set.' );
            }

            if ( FALSE !== strstr( $view, '.php' ) )
            {
                include $viewDir . $view;
            }
            else
            {
                include $viewDir . $view . '.php';
            }

            $newView = ob_get_clean();

            if ( $return )
            {
                $retVal = $newView;
            }
            else
            {
                $this->pageView .= $newView;
            }
        }
        else
        {
            $retVal = '';
        }

        error_reporting( $level );

        return $retVal;
    }