好的,这是问题:
我的Zend Framework 2应用程序中有一个模块,我希望不包含在生产中。因此,我在名为config/autoload
的{{1}}内创建了一个文件,其中包含以下内容:
local.php
而'modules' => array(
'Application',
'My_Local_Module',
),
包含:
config/application.config.php
当我尝试访问URL中的模块时,会返回'modules' => array(
'Application',
),
。但是,当我在404
文件中设置modules
时,模块会正确显示。环境变量设置为application.config.php
。
答案 0 :(得分:1)
在index.php中添加以下行:
<?php
// ...
// Get the current environment (development, testing, staging, production, ...)
$env = strtolower(getenv('APPLICATION_ENV'));
// Assume production if environment not defined
if (empty($env)) {
$env = 'production';
}
// Get the default config file
$config = require 'config/application.config.php';
// Check if the environment config file exists and merge it with the default
$env_config_file = 'config/application.' . $env . '.config.php';
if (is_readable($env_config_file)) {
$config = array_merge_recursive($config, require $env_config_file);
}
// Run the application!
Zend\Mvc\Application::init($config)->run();
然后为每个环境创建不同的配置文件。
<强> application.config.php:强>
<?php
return array(
'modules' => array(
'Application'
),
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php'
),
'module_paths' => array(
'./module',
'./vendor'
)
)
);
<强> application.development.config.php:强>
<?php
return array(
'modules' => array(
'ZendDeveloperTools'
)
);
<强> application.production.config.php:强>
<?php
return array(
'module_listener_options' => array(
'config_cache_enabled' => true,
'module_map_cache_enabled' => true,
'cache_dir' => 'data/cache/'
)
);
答案 1 :(得分:0)
你必须枚举application.config.php中的所有模块,所以配置看起来应该是这样的:
$modules = array (
'Application'
);
if (IS_LOCAL_DOMAIN)
{
$modules [] = "My_Local_Module";
}
return array(
'modules' => $modules,
'module_listener_options' => array(
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
'module_paths' => array(
'./module',
'./vendor',
),
),
);