2016-02-21 12 views
5

W ramach mojego projektu utworzyłem katalog "core", który zawiera pewne klasy i metody wywoływane w kontrolerach. Mam definiują parametry konfiguracyjne w moim pliku uruchamiającego tak:Jak uzyskać dostęp do danych konfiguracyjnych Phalcon w zewnętrznej bibliotece?

private function loadConfig() 
{ 
    // Bootstrap 
    $configFile = __DIR__ . '/../config/config.json'; 

    // Create the new object 
    $config = json_decode (file_get_contents ($configFile)); 

    // Store it in the Di container 
    $this->di->setShared ('config', $config); 
} 

Chcę być w stanie uzyskać dostęp do tych wartości konfiguracyjnych w moich „podstawowych” klas.

Co mam zrobić?

Odpowiedz

5

Istnieje kilka sposobów, aby uzyskać referencję do usługi, którą zarejestrowany z Dependency wtryskiwacza. Jednak, aby upewnić się, że uzyskanie tego samego wystąpienia usługi, a nie nowo wygenerowany, wtedy trzeba zastosować metodę getShared:

$this->getDI()->getShared('config'); 

ten sposób gwarantuje otrzymujesz najwyższą wydajność możliwe, minimalizując ślad pamięci.

+1

To działało jak czar. Dzięki! –

2

w swojej klasie kontrolera, call config przez

$this->config 
1

Można uzyskać dostęp do usług z dowolnych klas, które wdraża Phalcon\Di\Injectable

  • Phalcon\Mvc\Controller
  • Phalcon\Mvc\User\Component
  • Phalcon\Mvc\User\Module
  • Phalcon\Mvc\User\Plugin
  • itp

Przykłady:

$this->getDI()->get('config'); 

// The same as $this->config 
$this->getDI()->getShared('config'); 
Powiązane problemy