public function outputView()
    {
        // Can have Components without views
        if (!$this->view) {
            return '';
        }

        /**
         * @var View $view
         */

        // We init every View only once
        if (!isset(self::$views[$this->view])) {
            if (!class_exists($this->view)) {
                $this->view = str_replace('_', '', $this->view);
            }

            $view = new $this->view($this);
            // Set up shared data
            $view->setUp();
            self::$views[$this->view] = $view;
        }
        $method = $this->method;

        if (!method_exists(self::$views[$this->view], $method)) {
            dump('Method "'. $method .'" in class "'. $this->view .'" not found.');
        }

        // Execute view method
        $this->getCurrentViewObject()->$method($this->data);

        // Require file with data
        $method_file = DIR_FRONT_VIEWS . $this->getComponentName() . '.' . $method . '.php';
        if (is_file($method_file)) {
            require_once $method_file;
        }
        // Require file with data in sub folder
        $method_file = DIR_FRONT_VIEWS . $this->getComponentName() . '/' . $method . '.php';
        if (is_file($method_file)) {
            require_once $method_file;
        }
    }