Как загрузить больше ресурсов, которые находятся вне приложения env?
У меня есть application.ini, как это
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[database]
resources.db.adapter = PDO_MYSQL
resources.db.params.dbname = "ccgss"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.hostname = "localhost"
resources.db.isDefaultTableAdapter = true
[layout]
layoutPath = APPLICATION_PATH "/layouts"
layout = default
contentKey = "content"
По умолчанию Zend Framework загружает [production]
раздел. Как автоматически загрузить другие разделы?
Дополнительно
Как я могу изменить среду между staging
, testing
, development
а дальше?
2 ответа
Чтобы переключать среды вашего приложения между производством, разработкой и т. Д., Просто установите для переменной подходящее значение в вашем .htaccess
файл:
SetEnv APPLICATION_ENV development
Если вы хотите автоматически загрузить собственные плагины ресурсов из начальной загрузки, вы можете сделать это, просто прикрепив их к resources
массив:
resources.myplugin.param1 = "myvalue"
Не забудьте добавить пространство имен и каталог вашего плагина к pluginsPath
значение также, или ZF не будет знать, где искать:
pluginPaths.My_Resource_Namespace = "My/Namespace/Folder"
Наконец, если вы хотите получить доступ к значениям в вашем конфигурационном файле без использования resources
Плагин, вы можете загрузить файл, используя класс Zend_Config_Ini:
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
Zend Framework загружает раздел "production", потому что в вашем index.php ваша среда установлена на "production"
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
Таким образом, чтобы изменить вашу среду на нечто иное, чем производство, вам просто нужно изменить значение APPLICATION_ENV
переменная (вы можете сделать это в.htaccess, например).
Кроме того, вам, вероятно, не нужны отдельные разделы для базы данных и макета, просто включите их в раздел "производство". Если вы используете для них отдельные разделы, они не анализируются, поскольку анализируется только текущий раздел среды, как видно из этой строки.
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);