Как загрузить больше ресурсов, которые находятся вне приложения env? - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть 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 ]

1 голос
/ 01 сентября 2010

Zend Framework загружает раздел «производство», потому что ваша среда настроена на «производство» в вашем index.php

defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

Таким образом, чтобы изменить вашу среду на что-то отличное от производства, вам просто нужно изменить значениепеременной APPLICATION_ENV (вы можете сделать это, например, в .htaccess).

Кроме того, вам, вероятно, не нужны отдельные разделы для базы данных и макета, просто включите их в раздел «production».Если вы используете для них отдельные разделы, они не анализируются, поскольку анализируется только текущий раздел среды, как видно из этой строки

$application = new Zend_Application(
  APPLICATION_ENV,
  APPLICATION_PATH . '/configs/application.ini'
);
1 голос
/ 01 сентября 2010

Чтобы переключать среды вашего приложения между производством, разработкой и т. Д., Просто установите переменную на соответствующее значение в файле .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');
...