Sie können immer den Di-Container verwenden.
Sobald Sie eine Komponente in Di registrieren, ist es in der Steuerung durch die magische Methode verfügbar. Zum Beispiel:
// Bootstrap
$configFile = ROOT_PATH . '/app/config/config.ini';
// Create the new object
$config = new \Phalcon\Config\Adapter\Ini($configFile);
// Store it in the Di container
$this->di->setShared('config', $config);
und in Ihrem Controller ist es so einfach wie:
$config = $this->config;
Wenn Sie eine Basis Controller-Klasse erstellen, können Sie die Objekte in der Ansicht wie so bei Bedarf passieren können:
$this->view->setVar('config', $this->config);
Schließlich kann der Di-Container auch als Registrierung dienen, in der Sie Elemente speichern, die Sie in Ihrer Anwendung verwenden möchten.
Ein Beispiel für Bootstrapping und Zugriff auf Objekte in Controllern finden Sie im Repository phalcon/website. Es implementiert unter anderem Bootstrapping- und Basiscontrollermuster.
Danke dafür! Funktioniert wirklich gut – Tim
Ich weiß, ich bin ein bisschen spät, aber warum in diesem Szenario würden Sie $ di> set() über $ di> setShared() verwenden? – Mechzeit
@Spinket 'setShared' könnte hier besser verwendet werden - Sie haben Recht - da' $ config' wirklich in der App verwendet wird und ein gemeinsames Objekt sein muss. Ich habe meine Antwort entsprechend geändert, danke! –