Zend Framework - Доступ к пользовательским файлам конфигурации - PullRequest
1 голос
/ 12 марта 2012

Я создал специальный XML-файл конфигурации с именем config.xml и поместил его в каталог config в Zend Framework.Я хочу использовать его в одном из моих контроллеров, используя Zend_Config_Xml.Что у меня не работает, а там написано "Произошла ошибка. Ошибка приложения".Как мне прочитать пользовательский XML-файл конфигурации с контроллера?Это то, что у меня есть в моем контроллере:

class IndexController extends Zend_Controller_Action
{
    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
        $config = new Zend_Config_Xml('config.xml', 'staging');
        echo $config->host;
    }
}

Ответы [ 2 ]

3 голосов
/ 12 марта 2012

Вероятно, просто путь, который вам нужно исправить:

$config = new Zend_Config_Xml(APPLICATION_PATH.'/configs/config.xml', 'staging');

, если нет, проверьте журнал ошибок, чтобы увидеть, что на самом деле является сообщением об ошибке.

Редактировать: сделать это вСамым простым (хотя, возможно, и не самым лучшим) способом начальной загрузки является добавление нового метода ресурса и сохранение объекта конфигурации в реестре.Добавьте это к своему классу начальной загрузки:

protected function _initCustomConfig()
{
    $config = new Zend_Config_Xml('config.xml', 'staging');
    Zend_Registry::set('config', $config);

    return $config;
}

, к которому вы можете обратиться позже, используя:

$config = Zend_Registry::get('config');
1 голос
/ 13 марта 2012

Если вы отлаживаете проблему локально, сначала включите лучший отчет об ошибках, добавив следующие команды в раздел разработки вашего application.ini:

phpSettings.error_reporting         = E_ALL
phpSettings.display_startup_errors  = 1
phpSettings.display_errors          = 1

По умолчанию Zend Framework не показывает внутренние ошибки.

Если вы загружаете файл Zend_Config, всегда лучше загрузить его, используя абсолютный путь.

public function indexAction()
    {
        // action body
        $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/config.xml', 'staging');
        echo $config->host;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...