Übergabe von Daten vom Controller an View in einer PHP MVC-App

In fast allen Tutorials oder Antworten zu SO sehe ich eine übliche Methode zum Senden von Daten von einem Controller an die Ansicht. Die Klassenansicht sieht häufig etwas ähnlicher aus als der folgende Code:

class View
{
    protected $_file;
    protected $_data = array();

    public function __construct($file)
    {
        $this->_file = $file;
    }

    public function set($key, $value)
    {
        $this->_data[$key] = $value;
    }

    public function get($key) 
    {
        return $this->_data[$key];
    }

    public function output()
    {
        if (!file_exists($this->_file))
        {
            throw new Exception("Template " . $this->_file . " doesn't exist.");
        }

        extract($this->_data);
        ob_start();
        include($this->_file);
        $output = ob_get_contents();
        ob_end_clean();
        echo $output;
    }
}

Ich verstehe nicht, warum ich die Daten in ein Array einfügen und dann extract ($ this -> _ data) aufrufen muss. Warum nicht einfach direkt einige Eigenschaften aus dem Controller in die Ansicht übernehmen wie

$this->_view->title = 'hello world';

Dann könnte ich in meiner Layout- oder Vorlagendatei Folgendes tun:

echo $this->title;

Antworten auf die Frage(2)

Ihre Antwort auf die Frage