Intereting Posts
DatePicker: невозможно установить свойство «currentDay» неопределенного, когда идентификатор нескольких массивов Воспроизведение композиций MP3 без раскрытия пути файла preg_repalce соответствует частичным данным с правильным регулярным выражением Каков наилучший способ проверить, существует ли URL-адрес в PHP? Повторяющийся ключ не запускает исключение, генерирующее PDO для составного ключа в простом примере Поддерживает ли PHP-класс PHP javascript? Пропустить массив с помощью ключей через HTTP GET cURL ошибка 35: Неизвестная ошибка протокола SSL в связи с api.mailgun Почему symfony не может найти мой автозагруженный класс? Проблема с разбиением на страницы в пользовательском шаблоне WordPress Ошибка компиляции: «g ++: ошибка при попытке выполнить« cc1plus »: execvp: нет такого файла или каталога" Multi Select Dropdownlist Предварительный выбор Запись в журнал ошибок с информацией о местном времени и разрывом строки в конце Случайное число в пределах диапазона с семенем PHP Запись в файл на другом сервере

Переменные контрольные переменные в Phalcon

Стремясь сохранить мой код DRY, я хотел бы иметь возможность определять переменные «cross controller».

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

Каков наилучший способ достижения этого?

Тим

Related of "Переменные контрольные переменные в Phalcon"

Вы всегда можете использовать контейнер Di.

Как только вы зарегистрируете компонент в Di, он доступен в контроллере магическим методом. Например:

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

и в вашем контроллере это просто:

 $config = $this->config; 

Если вы создаете базовый класс контроллера, вы можете передать эти объекты в представлении, если это необходимо:

 $this->view->setVar('config', $this->config); 

Наконец, контейнер Di может действовать также как реестр, где вы храните элементы, которые вы, возможно, захотите использовать в своем приложении.

Для примера загрузки и доступа к объектам в контроллерах обратитесь к репозиторию phalcon / website . Он, помимо прочего, реализует шаблоны начальной загрузки и базового контроллера.

Ниже приведена моя настройка.

 [PHP] 5.4.1 [phalcon] 1.2.1 

Вот отрывок из моего загрузочного файла. (/ App-root / public / index.php)

  $di = new \Phalcon\DI\FactoryDefault(); // I'll pass the config to a controller. $di->set('config', $config); $application = new \Phalcon\Mvc\Application(); $application->setDI($di); echo $application->handle()->getContent(); 

И это выдержка из моего базового контроллера. (/ App-root / app / controllerlers / ControllerBase.php)

  class ControllerBase extends Phalcon\Mvc\Controller { protected $config; protected function initialize() { $this->config = $this->di->get('config'); $appName = $this->config->application->appName;