2013-05-04 3 views
0

OK, 여기에 문제가 있습니다.Zend Framework 2 : 프로덕션 환경에서 모듈 사용 안 함

프로덕션 환경에 포함하지 않을 Zend Framework 2 응용 프로그램에 모듈이 있습니다.

'modules' => array(
    'Application', 
    'My_Local_Module', 
), 

config/application.config.php가 포함하는 동안 :

'modules' => array(
    'Application', 
), 

나는 URL에서 모듈에 액세스하려고

하는 404이 반환 따라서, 나는 다음과 같은 내용으로 local.php라고 config/autoload 내부의 파일을했다. 그러나 application.config.php 파일 안에 modules을 설정하면 모듈이 제대로 표시됩니다. 환경 변수는 local으로 설정됩니다.

답변

0

당신은 application.config.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(); 

:

$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', 
     ), 
    ), 
); 
1

당신의 index.php에서 다음 줄을 넣어 그런 다음 각 환경에 대해 서로 다른 구성 파일을 만듭니다.

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