2016-02-21 1 views
5

В моем проекте я создал «основной» каталог, который содержит определенные классы и методы, называемые во всех контроллерах. Я определил параметры конфигурации в моем файле начальной загрузки, так как:Как получить доступ к данным конфигурации Phalcon во внешней библиотеке?

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

Я хочу, чтобы иметь возможность доступа к этим значениям конфигурации в моих «основных» классах.

Что мне делать?

ответ

5

Есть несколько способов, чтобы получить ссылку на сервис вы зарегистрировались с Dependency Injector. Однако, чтобы убедиться, что вы получаете тот же экземпляр службы, а не только что генерируется один, то вам необходимо использовать метод getShared:

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

Это гарантирует, что вы получаете максимальную производительность возможно, и сводя к минимуму память.

+1

Это работало как шарм. Благодаря! –

2

в классе контроллера, вызов конфигурация по

$this->config 
1

Вы можете получить доступ к услугам из любых классов, которые реализуют Phalcon\Di\Injectable

  • Phalcon\Mvc\Controller
  • Phalcon\Mvc\User\Component
  • Phalcon\Mvc\User\Module
  • Phalcon\Mvc\User\Plugin
  • и т.д.

Примеры:

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

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