Zawsze można użyć pojemnika Di.
Po zarejestrowaniu komponentu w di jest on dostępny w kontrolerze metodą magiczną. Na przykład:
// 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);
w kontrolerze jest tak proste, jak:
$config = $this->config;
Jeśli utworzyć klasę sterownika bazowego, można przekazać te obiekty w widoku razie potrzeby tak:
$this->view->setVar('config', $this->config);
Wreszcie pojemnik Di może działać także jako rejestr, w którym można przechowywać przedmioty, które mogą być używane w aplikacji.
Aby uzyskać przykład ładowania i uzyskiwania dostępu do obiektów w kontrolerach, zajrzyj do repozytorium phalcon/website. Implementuje wzorce bootstrapowania i kontrolerów bazowych między innymi.
Dzięki za to! Działa naprawdę dobrze – Tim
Wiem, że jestem trochę spóźniony, ale dlaczego w tym scenariuszu używałbyś $ di-> set() ponad $ di-> setShared()? – Mechzeit
@Spinkzeit 'setShared' może być tu lepszym rozwiązaniem - masz rację - ponieważ' $ config' jest naprawdę używany w całej aplikacji i musi być obiektem współdzielonym. Odpowiednio zmieniłem swoją odpowiedź, dzięki! –