2016-02-21 12 views
5

All'interno del mio progetto, ho creato una directory "core" che contiene alcune classi e metodi chiamati in tutto i controller. Ho definito un parametri di configurazione nel mio file di bootstrap in questo modo:Come posso accedere ai dati di configurazione di Phalcon in una libreria esterna?

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); 
} 

Voglio essere in grado di accedere a questi valori di configurazione nelle mie classi "core".

Cosa devo fare?

risposta

5

Ci sono diversi modi per ottenere un riferimento al servizio che avete registrato con la dipendenza Injector. Tuttavia, per assicurarsi che si stanno ottenendo la stessa istanza del servizio e non un appena generato uno, allora avete bisogno di utilizzare il metodo getShared:

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

In questo modo assicura che si stanno ottenendo le migliori prestazioni possibili, e riducendo al minimo impronta di memoria.

+1

Che ha funzionato come un fascino. Grazie! –

2

nella classe di controllo, configurazione chiamata

$this->config 
1

È possibile accedere ai servizi da qualsiasi classe che implementa Phalcon\Di\Injectable

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

Esempi:

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

// The same as $this->config 
$this->getDI()->getShared('config'); 
Problemi correlati