Development

Changeset 7691

You must first sign up to be able to contribute.

Changeset 7691

Show
Ignore:
Timestamp:
02/29/08 17:56:22 (6 months ago)
Author:
fabien
Message:

simplified directory structure customization

  • removed *_dir_name constantsi
  • added methods to change the directory structure of a symfony application
    • setRootDir()
    • setCacheDir()
    • setLogDir()
    • setWebDir()
    • setAppDir()
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.1/UPGRADE

    r7614 r7691  
    538538If you've added some cutomizations in `config.php` files, you will have to migrate them 
    539539to those new classes. 
     540 
     541Directory structure 
     542------------------- 
     543 
     544All `sfConfig` constants ending with `_dir_name` have been removed. 
  • branches/1.1/lib/action/sfAction.class.php

    r7614 r7691  
    3636 
    3737    // include security configuration 
    38     if ($file = $context->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$this->getModuleName().'/'.sfConfig::get('sf_app_module_config_dir_name').'/security.yml', true)) 
     38    if ($file = $context->getConfigCache()->checkConfig('modules/'.$this->getModuleName().'/config/security.yml', true)) 
    3939    { 
    4040      require($file); 
  • branches/1.1/lib/config/config/autoload.yml

    r7243 r7691  
    2121  project_model: 
    2222    name:           project model 
    23     path:           %SF_MODEL_LIB_DIR% 
     23    path:           %SF_LIB_DIR%/model 
    2424    recursive:      on 
    2525 
  • branches/1.1/lib/config/sfApplicationConfiguration.class.php

    r7670 r7691  
    3838    parent::__construct($rootDir); 
    3939 
     40    $this->configure(); 
     41 
    4042    if (sfConfig::get('sf_check_lock')) 
    4143    { 
     
    6062    $this->debug       = (boolean) $debug; 
    6163    $this->application = str_replace('Configuration', '', get_class($this)); 
    62  
    63     $this->configure(); 
    6464  } 
    6565 
     
    118118 
    119119    // load base settings 
    120     include($configCache->checkConfig(sfConfig::get('sf_app_config_dir_name').'/settings.yml')); 
    121     if ($file = $configCache->checkConfig(sfConfig::get('sf_app_config_dir_name').'/app.yml', true)) 
    122     { 
    123       include($configCache->checkConfig(sfConfig::get('sf_app_config_dir_name').'/app.yml')); 
     120    include($configCache->checkConfig('config/settings.yml')); 
     121    if ($file = $configCache->checkConfig('config/app.yml', true)) 
     122    { 
     123      include($configCache->checkConfig('config/app.yml')); 
    124124    } 
    125125 
     
    127127    if (!sfConfig::get('sf_debug') && !sfConfig::get('sf_test')) 
    128128    { 
    129       $configCache->import(sfConfig::get('sf_app_config_dir_name').'/core_compile.yml', false); 
     129      $configCache->import('config/core_compile.yml', false); 
    130130    } 
    131131 
     
    194194 
    195195  /** 
     196   * Sets the project root directory. 
     197   * 
     198   * @param string The project root directory 
     199   */ 
     200  public function setRootDir($rootDir) 
     201  { 
     202    parent::setRootDir($rootDir); 
     203 
     204    sfConfig::add(array( 
     205      'sf_app'         => $this->getApplication(), 
     206      'sf_environment' => $this->getEnvironment(), 
     207      'sf_debug'       => $this->isDebug(), 
     208    )); 
     209 
     210    $this->setAppDir(sfConfig::get('sf_apps_dir').DIRECTORY_SEPARATOR.$this->getApplication()); 
     211  } 
     212 
     213  /** 
     214   * Sets the app directory. 
     215   * 
     216   * @param string The absolute path to the app dir. 
     217   */ 
     218  public function setAppDir($appDir) 
     219  { 
     220    sfConfig::add(array( 
     221      'sf_app_dir' => $appDir, 
     222 
     223      // SF_APP_DIR directory structure 
     224      'sf_app_config_dir'   => $appDir.DIRECTORY_SEPARATOR.'config', 
     225      'sf_app_lib_dir'      => $appDir.DIRECTORY_SEPARATOR.'lib', 
     226      'sf_app_module_dir'   => $appDir.DIRECTORY_SEPARATOR.'modules', 
     227      'sf_app_template_dir' => $appDir.DIRECTORY_SEPARATOR.'templates', 
     228      'sf_app_i18n_dir'     => $appDir.DIRECTORY_SEPARATOR.'i18n', 
     229    )); 
     230  } 
     231 
     232  /** 
    196233   * @see sfProjectConfiguration 
    197234   */ 
    198   public function getDirectoryStructure() 
    199   { 
    200     $config = parent::getDirectoryStructure(); 
    201  
    202     return array_merge($config, array( 
    203       'sf_app'         => $sf_app = $this->getApplication(), 
    204       'sf_environment' => $sf_environment = $this->getEnvironment(), 
    205       'sf_debug'       => $this->isDebug(), 
    206  
    207       'sf_app_dir'            => $sf_app_dir = $this->getRootDir().DIRECTORY_SEPARATOR.$config['sf_apps_dir_name'].DIRECTORY_SEPARATOR.$sf_app, 
    208       'sf_app_base_cache_dir' => $config['sf_cache_dir'].DIRECTORY_SEPARATOR.$sf_app, 
    209       'sf_app_cache_dir'      => $sf_app_cache_dir = $config['sf_cache_dir'].DIRECTORY_SEPARATOR.$sf_app.DIRECTORY_SEPARATOR.$sf_environment, 
    210  
    211       // SF_APP_DIR directory structure 
    212       'sf_app_config_dir'     => $sf_app_dir.DIRECTORY_SEPARATOR.$config['sf_app_config_dir_name'], 
    213       'sf_app_lib_dir'        => $sf_app_dir.DIRECTORY_SEPARATOR.$config['sf_app_lib_dir_name'], 
    214       'sf_app_module_dir'     => $sf_app_dir.DIRECTORY_SEPARATOR.$config['sf_app_module_dir_name'], 
    215       'sf_app_template_dir'   => $sf_app_dir.DIRECTORY_SEPARATOR.$config['sf_app_template_dir_name'], 
    216       'sf_app_i18n_dir'       => $sf_app_dir.DIRECTORY_SEPARATOR.$config['sf_app_i18n_dir_name'], 
     235  public function setCacheDir($cacheDir) 
     236  { 
     237    parent::setCacheDir($cacheDir); 
     238 
     239    sfConfig::add(array( 
     240      'sf_app_base_cache_dir' => $cacheDir.DIRECTORY_SEPARATOR.$this->getApplication(), 
     241      'sf_app_cache_dir'      => $appCacheDir = $cacheDir.DIRECTORY_SEPARATOR.$this->getApplication().DIRECTORY_SEPARATOR.$this->getEnvironment(), 
    217242 
    218243      // SF_CACHE_DIR directory structure 
    219       'sf_template_cache_dir' => $sf_app_cache_dir.DIRECTORY_SEPARATOR.'template', 
    220       'sf_i18n_cache_dir'     => $sf_app_cache_dir.DIRECTORY_SEPARATOR.'i18n', 
    221       'sf_config_cache_dir'   => $sf_app_cache_dir.DIRECTORY_SEPARATOR.$config['sf_config_dir_name']
    222       'sf_test_cache_dir'     => $sf_app_cache_dir.DIRECTORY_SEPARATOR.'test', 
    223       'sf_module_cache_dir'   => $sf_app_cache_dir.DIRECTORY_SEPARATOR.'modules', 
     244      'sf_template_cache_dir' => $appCacheDir.DIRECTORY_SEPARATOR.'template', 
     245      'sf_i18n_cache_dir'     => $appCacheDir.DIRECTORY_SEPARATOR.'i18n', 
     246      'sf_config_cache_dir'   => $appCacheDir.DIRECTORY_SEPARATOR.'config'
     247      'sf_test_cache_dir'     => $appCacheDir.DIRECTORY_SEPARATOR.'test', 
     248      'sf_module_cache_dir'   => $appCacheDir.DIRECTORY_SEPARATOR.'modules', 
    224249    )); 
    225250  } 
     
    234259  public function getControllerDirs($moduleName) 
    235260  { 
    236     $suffix = $moduleName.'/'.sfConfig::get('sf_app_module_action_dir_name'); 
    237  
    238261    $dirs = array(); 
    239262    foreach (sfConfig::get('sf_module_dirs', array()) as $key => $value) 
    240263    { 
    241       $dirs[$key.'/'.$suffix] = $value; 
    242     } 
    243  
    244     $dirs[sfConfig::get('sf_app_module_dir').'/'.$suffix] = false;                                     // application 
    245  
    246     if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$suffix)) 
     264      $dirs[$key.'/'.$moduleName.'/actions'] = $value; 
     265    } 
     266 
     267    $dirs[sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/actions'] = false;                                     // application 
     268 
     269    if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$moduleName.'/actions')) 
    247270    { 
    248271      $dirs = array_merge($dirs, array_combine($pluginDirs, array_fill(0, count($pluginDirs), true))); // plugins 
    249272    } 
    250273 
    251     $dirs[sfConfig::get('sf_symfony_lib_dir').'/controller/'.$suffix] = true;                          // core modules 
     274    $dirs[sfConfig::get('sf_symfony_lib_dir').'/controller/'.$moduleName.'/actions'] = true;                          // core modules 
    252275 
    253276    return $dirs; 
     
    263286  public function getTemplateDirs($moduleName) 
    264287  { 
    265     $suffix = $moduleName.'/'.sfConfig::get('sf_app_module_template_dir_name'); 
    266  
    267288    $dirs = array(); 
    268289    foreach (sfConfig::get('sf_module_dirs', array()) as $key => $value) 
    269290    { 
    270       $dirs[] = $key.'/'.$suffix
    271     } 
    272  
    273     $dirs[] = sfConfig::get('sf_app_module_dir').'/'.$suffix;                        // application 
    274  
    275     if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$suffix)) 
    276     { 
    277       $dirs = array_merge($dirs, $pluginDirs);                                       // plugins 
    278     } 
    279  
    280     $dirs[] = sfConfig::get('sf_symfony_lib_dir').'/controller/'.$suffix;            // core modules 
    281     $dirs[] = sfConfig::get('sf_module_cache_dir').'/auto'.ucfirst($suffix);         // generated templates in cache 
     291      $dirs[] = $key.'/'.$moduleName.'/templates'
     292    } 
     293 
     294    $dirs[] = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/templates';                        // application 
     295 
     296    if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$moduleName.'/templates')) 
     297    { 
     298      $dirs = array_merge($dirs, $pluginDirs);                                                        // plugins 
     299    } 
     300 
     301    $dirs[] = sfConfig::get('sf_symfony_lib_dir').'/controller/'.$moduleName.'/templates';            // core modules 
     302    $dirs[] = sfConfig::get('sf_module_cache_dir').'/auto'.ucfirst($moduleName.'/templates');         // generated templates in cache 
    282303 
    283304    return $dirs; 
     
    294315  public function getTemplateDir($moduleName, $templateFile) 
    295316  { 
    296     $dirs = $this->getTemplateDirs($moduleName); 
    297     foreach ($dirs as $dir) 
     317    foreach ($this->getTemplateDirs($moduleName) as $dir) 
    298318    { 
    299319      if (is_readable($dir.'/'.$templateFile)) 
     
    331351 
    332352    // application 
    333     if (is_dir($dir = sfConfig::get('sf_app_dir').'/'.sfConfig::get('sf_app_module_i18n_dir_name'))) 
     353    if (is_dir($dir = sfConfig::get('sf_app_dir').'/i18n')) 
    334354    { 
    335355      $dirs[] = $dir; 
     
    337357 
    338358    // plugins 
    339     $pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/'.sfConfig::get('sf_app_module_i18n_dir_name')); 
     359    $pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/i18n'); 
    340360    if (isset($pluginDirs[0])) 
    341361    { 
     
    358378 
    359379    // module 
    360     if (is_dir($dir = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_i18n_dir_name'))) 
     380    if (is_dir($dir = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/i18n')) 
    361381    { 
    362382      $dirs[] = $dir; 
     
    364384 
    365385    // application 
    366     if (is_dir($dir = sfConfig::get('sf_app_dir').'/'.sfConfig::get('sf_app_module_i18n_dir_name'))) 
     386    if (is_dir($dir = sfConfig::get('sf_app_dir').'/i18n')) 
    367387    { 
    368388      $dirs[] = $dir; 
     
    370390 
    371391    // module in plugins 
    372     $pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$moduleName.'/'.sfConfig::get('sf_app_module_i18n_dir_name')); 
     392    $pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$moduleName.'/i18n'); 
    373393    if (isset($pluginDirs[0])) 
    374394    { 
     
    377397 
    378398    // plugins 
    379     $pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/'.sfConfig::get('sf_app_module_i18n_dir_name')); 
     399    $pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/i18n'); 
    380400    if (isset($pluginDirs[0])) 
    381401    { 
  • branches/1.1/lib/config/sfCompileConfigHandler.class.php

    r7614 r7691  
    101101  protected function insertConfigFileCallback($matches) 
    102102  { 
    103     $configFile = sfConfig::get('sf_app_config_dir_name').'/'.$matches[4]; 
     103    $configFile = 'config/'.$matches[4]; 
    104104 
    105105    $configCache = sfContext::getInstance()->getConfigCache(); 
  • branches/1.1/lib/config/sfConfigCache.class.php

    r7614 r7691  
    272272    // application configuration handlers 
    273273 
    274     require $this->checkConfig(sfConfig::get('sf_app_config_dir_name').'/config_handlers.yml'); 
     274    require $this->checkConfig('config/config_handlers.yml'); 
    275275 
    276276    // module level configuration handlers 
     
    296296      } 
    297297 
    298       $configPath = $sf_app_modules_dir.'/'.$directory.'/'.sfConfig::get('sf_app_module_config_dir_name').'/config_handlers.yml'; 
     298      $configPath = $sf_app_modules_dir.'/'.$directory.'/config/config_handlers.yml'; 
    299299 
    300300      if (is_readable($configPath)) 
     
    307307        // replace module dir path with a special keyword that 
    308308        // checkConfig knows how to use 
    309         $configPath = sfConfig::get('sf_app_modules_dir_name').'/'.$directory.'/'.sfConfig::get('sf_app_module_config_dir_name').'/config_handlers.yml'; 
     309        $configPath = 'modules/'.$directory.'/config/config_handlers.yml'; 
    310310 
    311311        require $this->checkConfig($configPath); 
  • branches/1.1/lib/config/sfGeneratorConfigHandler.class.php

    r7614 r7691  
    6666 
    6767    // hack to find the module name 
    68     preg_match('#'.sfConfig::get('sf_app_module_dir_name').'/([^/]+)/#', $configFiles[1], $match); 
     68    preg_match('#modules/([^/]+)/#', $configFiles[1], $match); 
    6969    $generatorParam['moduleName'] = $match[1]; 
    7070 
  • branches/1.1/lib/config/sfLoader.class.php

    r7614 r7691  
    3232    if ($moduleName) 
    3333    { 
    34       $dirs[] = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_lib_dir_name').'/helper'; // module 
     34      $dirs[] = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/lib/helper'; // module 
    3535 
    3636      if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/modules/'.$moduleName.'/lib/helper')) 
    3737      { 
    38         $dirs = array_merge($dirs, $pluginDirs);                                                                              // module plugins 
     38        $dirs = array_merge($dirs, $pluginDirs);                                  // module plugins 
    3939      } 
    4040    } 
    4141 
    42     $dirs[] = sfConfig::get('sf_app_lib_dir').'/helper';                                                                      // application 
     42    $dirs[] = sfConfig::get('sf_app_lib_dir').'/helper';                          // application 
    4343 
    44     $dirs[] = sfConfig::get('sf_lib_dir').'/helper';                                                                          // project 
     44    $dirs[] = sfConfig::get('sf_lib_dir').'/helper';                              // project 
    4545 
    4646    if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/lib/helper')) 
    4747    { 
    48       $dirs = array_merge($dirs, $pluginDirs);                                                                                // plugins 
     48      $dirs = array_merge($dirs, $pluginDirs);                                    // plugins 
    4949    } 
    5050 
  • branches/1.1/lib/config/sfProjectConfiguration.class.php

    r7670 r7691  
    2020{ 
    2121  protected 
    22     $rootDir        = null, 
    23     $symfonyLibDir  = null, 
    24     $config         = array(); 
     22    $rootDir       = null, 
     23    $symfonyLibDir = null; 
    2524 
    2625  static protected 
     
    3433    sfProjectConfiguration::$active = $this; 
    3534 
    36     $this->setRootDir($rootDir); 
    37  
    38     $this->rootDir       = realpath($this->getRootDir()); 
     35    if (is_null($rootDir)) 
     36    { 
     37      $r = new ReflectionObject($this); 
     38 
     39      $this->rootDir = realpath(dirname($r->getFileName()).'/..'); 
     40    } 
     41    else 
     42    { 
     43      $this->rootDir = realpath($rootDir); 
     44    } 
     45 
    3946    $this->symfonyLibDir = realpath(dirname(__FILE__).'/..'); 
    4047 
     
    6168  public function initConfiguration() 
    6269  { 
    63     // directory layout 
    64     sfConfig::add($this->getDirectoryStructure()); 
    65  
    6670    ini_set('magic_quotes_runtime', 'off'); 
    6771    ini_set('register_globals', 'off'); 
    68   } 
    69  
    70   /** 
    71    * Returns the directory structure for the current configuration. 
    72    * 
    73    * @return array An array containing the basic directory structure of the current configuration 
    74    */ 
    75   public function getDirectoryStructure() 
    76   { 
    77     return array( 
    78       'sf_symfony_lib_dir' => $this->getSymfonyLibDir(), 
    79       'sf_root_dir'        => $sf_root_dir = $this->getRootDir(), 
    80  
    81       // root directory names 
    82       'sf_bin_dir_name'     => $sf_bin_dir_name     = 'batch', 
    83       'sf_cache_dir_name'   => $sf_cache_dir_name   = 'cache', 
    84       'sf_log_dir_name'     => $sf_log_dir_name     = 'log', 
    85       'sf_lib_dir_name'     => $sf_lib_dir_name     = 'lib', 
    86       'sf_web_dir_name'     => $sf_web_dir_name     = 'web', 
    87       'sf_upload_dir_name'  => $sf_upload_dir_name  = 'uploads', 
    88       'sf_data_dir_name'    => $sf_data_dir_name    = 'data', 
    89       'sf_config_dir_name'  => $sf_config_dir_name  = 'config', 
    90       'sf_apps_dir_name'    => $sf_apps_dir_name    = 'apps', 
    91       'sf_test_dir_name'    => $sf_test_dir_name    = 'test', 
    92       'sf_doc_dir_name'     => $sf_doc_dir_name     = 'doc', 
    93       'sf_plugins_dir_name' => $sf_plugins_dir_name = 'plugins', 
     72 
     73    sfConfig::set('sf_symfony_lib_dir', $this->symfonyLibDir); 
     74 
     75    $this->setRootDir($this->rootDir); 
     76  } 
     77 
     78  /** 
     79   * Sets the project root directory. 
     80   * 
     81   * @param string The project root directory 
     82   */ 
     83  public function setRootDir($rootDir) 
     84  { 
     85    $this->rootDir = $rootDir; 
     86 
     87    sfConfig::add(array( 
     88      'sf_root_dir' => $rootDir, 
    9489 
    9590      // global directory structure 
    96       'sf_apps_dir'       => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_apps_dir_name, 
    97       'sf_lib_dir'        => $sf_lib_dir = $sf_root_dir.DIRECTORY_SEPARATOR.$sf_lib_dir_name, 
    98       'sf_bin_dir'        => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_bin_dir_name, 
    99       'sf_web_dir'        => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name, 
    100       'sf_upload_dir'     => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name.DIRECTORY_SEPARATOR.$sf_upload_dir_name, 
    101       'sf_log_dir'        => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_log_dir_name, 
    102       'sf_data_dir'       => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_data_dir_name, 
    103       'sf_config_dir'     => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_config_dir_name, 
    104       'sf_test_dir'       => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_test_dir_name, 
    105       'sf_doc_dir'        => $sf_root_dir.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR.$sf_doc_dir_name, 
    106       'sf_plugins_dir'    => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_plugins_dir_name, 
    107       'sf_cache_dir'      => $sf_cache_dir = $sf_root_dir.DIRECTORY_SEPARATOR.$sf_cache_dir_name, 
    108  
    109       // lib directory names 
    110       'sf_model_dir_name' => $sf_model_dir_name = 'model', 
    111  
    112       // lib directory structure 
    113       'sf_model_lib_dir'  => $sf_lib_dir.DIRECTORY_SEPARATOR.$sf_model_dir_name, 
    114  
    115       // SF_APP_DIR sub-directories names 
    116       'sf_app_i18n_dir_name'     => $sf_app_i18n_dir_name     = 'i18n', 
    117       'sf_app_config_dir_name'   => $sf_app_config_dir_name   = 'config', 
    118       'sf_app_lib_dir_name'      => $sf_app_lib_dir_name      = 'lib', 
    119       'sf_app_module_dir_name'   => $sf_app_module_dir_name   = 'modules', 
    120       'sf_app_template_dir_name' => $sf_app_template_dir_name = 'templates', 
    121  
    122       // SF_APP_MODULE_DIR sub-directories names 
    123       'sf_app_module_action_dir_name'   => 'actions', 
    124       'sf_app_module_template_dir_name' => 'templates', 
    125       'sf_app_module_lib_dir_name'      => 'lib', 
    126       'sf_app_module_view_dir_name'     => 'views', 
    127       'sf_app_module_validate_dir_name' => 'validate', 
    128       'sf_app_module_config_dir_name'   => 'config', 
    129       'sf_app_module_i18n_dir_name'     => 'i18n', 
    130     ); 
     91      'sf_apps_dir'    => $rootDir.DIRECTORY_SEPARATOR.'apps', 
     92      'sf_lib_dir'     => $rootDir.DIRECTORY_SEPARATOR.'lib', 
     93      'sf_bin_dir'     => $rootDir.DIRECTORY_SEPARATOR.'batch', 
     94      'sf_log_dir'     => $rootDir.DIRECTORY_SEPARATOR.'log', 
     95      'sf_data_dir'    => $rootDir.DIRECTORY_SEPARATOR.'data', 
     96      'sf_config_dir'  => $rootDir.DIRECTORY_SEPARATOR.'config', 
     97      'sf_test_dir'    => $rootDir.DIRECTORY_SEPARATOR.'test', 
     98      'sf_doc_dir'     => $rootDir.DIRECTORY_SEPARATOR.'doc', 
     99      'sf_plugins_dir' => $rootDir.DIRECTORY_SEPARATOR.'plugins', 
     100    )); 
     101 
     102    $this->setWebDir($rootDir.DIRECTORY_SEPARATOR.'web'); 
     103    $this->setCacheDir($rootDir.DIRECTORY_SEPARATOR.'cache'); 
     104  } 
     105 
     106  /** 
     107   * Returns the project root directory. 
     108   * 
     109   * @return string The project root directory 
     110   */ 
     111  public function getRootDir() 
     112  { 
     113    return $this->rootDir; 
     114  } 
     115 
     116  /** 
     117   * Sets the cache root directory. 
     118   * 
     119   * @param string The absolute path to the cache dir. 
     120   */ 
     121  public function setCacheDir($cacheDir) 
     122  { 
     123    sfConfig::set('sf_cache_dir', $cacheDir); 
     124  } 
     125 
     126  /** 
     127   * Sets the log directory. 
     128   * 
     129   * @param string The absolute path to the log dir. 
     130   */ 
     131  public function setLogDir($logDir) 
     132  { 
     133    sfConfig::set('sf_log_dir', $logDir); 
     134  } 
     135 
     136  /** 
     137   * Sets the web root directory. 
     138   * 
     139   * @param string The absolute path to the web dir. 
     140   */ 
     141  public function setWebDir($webDir) 
     142  { 
     143    sfConfig::add(array( 
     144      'sf_web_dir'    => $webDir, 
     145      'sf_upload_dir' => $webDir.DIRECTORY_SEPARATOR.'uploads', 
     146    )); 
    131147  } 
    132148 
     
    138154  public function getModelDirs() 
    139155  { 
    140     $dirs = array(sfConfig::get('sf_lib_dir').'/model' ? sfConfig::get('sf_lib_dir').'/model' : 'lib/model'); // project 
     156    $dirs = array(sfConfig::get('sf_lib_dir').'/model');                    // project 
    141157    if ($pluginDirs = glob(sfConfig::get('sf_plugins_dir').'/*/lib/model')) 
    142158    { 
    143       $dirs = array_merge($dirs, $pluginDirs);                                                                // plugins 
     159      $dirs = array_merge($dirs, $pluginDirs);                               // plugins 
    144160    } 
    145161 
     
    243259 
    244260  /** 
    245    * Sets the project root directory. 
    246    * 
    247    * @param string The project root directory 
    248    */ 
    249   public function setRootDir($rootDir) 
    250   { 
    251     $this->rootDir = $rootDir; 
    252   } 
    253  
    254   /** 
    255    * Returns the project root directory. 
    256    * 
    257    * @return string The project root directory 
    258    */ 
    259   public function getRootDir() 
    260   { 
    261     if (is_null($this->rootDir)) 
    262     { 
    263       $r = new ReflectionObject($this); 
    264  
    265       $this->rootDir = realpath(dirname($r->getFileName()).'/..'); 
    266     } 
    267  
    268     return $this->rootDir; 
    269   } 
    270  
    271   /** 
    272261   * Returns the active configuration. 
    273262   * 
  • branches/1.1/lib/controller/sfController.class.php

    r7640 r7691  
    195195 
    196196    // check for a module generator config file 
    197     $this->context->getConfigCache()->import(sfConfig::get('sf_app_module_dir_name').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/generator.yml', true, true); 
     197    $this->context->getConfigCache()->import('modules/'.$moduleName.'/config/generator.yml', true, true); 
    198198 
    199199    if (!$this->actionExists($moduleName, $actionName)) 
     
    215215 
    216216    // include module configuration 
    217     require($this->context->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/module.yml')); 
     217    require($this->context->getConfigCache()->checkConfig('modules/'.$moduleName.'/config/module.yml')); 
    218218 
    219219    // check if this module is internal 
     
    227227    { 
    228228      // check for a module config.php 
    229       $moduleConfig = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/config.php'; 
     229      $moduleConfig = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/config/config.php'; 
    230230      if (is_readable($moduleConfig)) 
    231231      { 
     
    357357  { 
    358358    // user view exists? 
    359     $file = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_view_dir_name').'/'.$actionName.$viewName.'View.class.php'; 
     359    $file = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/view/'.$actionName.$viewName.'View.class.php'; 
    360360 
    361361    if (is_readable($file)) 
  • branches/1.1/lib/i18n/extract/sfI18nApplicationExtract.class.php

    r7430 r7691  
    2727 
    2828    // Modules 
    29     $moduleNames = sfFinder::type('dir')->maxdepth(0)->ignore_version_control()->relative()->in(sfConfig::get('sf_app_dir').'/modules'); 
     29    $moduleNames = sfFinder::type('dir')->maxdepth(0)->ignore_version_control()->relative()->in(sfConfig::get('sf_app_module_dir')); 
    3030    foreach ($moduleNames as $moduleName) 
    3131    { 
  • branches/1.1/lib/i18n/extract/sfI18nModuleExtract.class.php

    r7614 r7691  
    4444    $moduleDir = sfConfig::get('sf_app_module_dir').'/'.$this->module; 
    4545    $this->extractFromPhpFiles(array( 
    46       $moduleDir.'/'.sfConfig::get('sf_app_module_action_dir_name')
    47       $moduleDir.'/'.sfConfig::get('sf_app_module_lib_dir_name')
    48       $moduleDir.'/'.sfConfig::get('sf_app_module_template_dir_name')
     46      $moduleDir.'/actions'
     47      $moduleDir.'/lib'
     48      $moduleDir.'/templates'
    4949    )); 
    5050 
    5151    // Extract from generator.yml files 
    52     $generator = $moduleDir.'/'.sfConfig::get('sf_app_module_config_dir_name').'/generator.yml'; 
     52    $generator = $moduleDir.'/config/generator.yml'; 
    5353    if (file_exists($generator)) 
    5454    { 
     
    5858 
    5959    // Extract from validate/*.yml files 
    60     $validateFiles = glob($moduleDir.'/'.sfConfig::get('sf_app_module_validate_dir_name').'/*.yml'); 
     60    $validateFiles = glob($moduleDir.'/validate/*.yml'); 
    6161    if (is_array($validateFiles)) 
    6262    { 
  • branches/1.1/lib/plugins/sfCompat10Plugin/lib/filter/sfValidationExecutionFilter.class.php

    r7614 r7691  
    109109 
    110110    // get the current action validation configuration 
    111     $validationConfig = $moduleName.'/'.sfConfig::get('sf_app_module_validate_dir_name').'/'.$actionName.'.yml'; 
     111    $validationConfig = $moduleName.'/validate/'.$actionName.'.yml'; 
    112112 
    113113    // load validation configuration 
    114114    // do NOT use require_once 
    115     if (null !== $validateFile = $this->context->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$validationConfig, true)) 
     115    if (null !== $validateFile = $this->context->getConfigCache()->checkConfig('modules/'.$validationConfig, true)) 
    116116    { 
    117117      // create validator manager 
  • branches/1.1/lib/plugins/sfCompat10Plugin/lib/helper/ObjectAdminHelper.php

    r5855 r7691  
    3333    if ($include_link = _get_option($options, 'include_link')) 
    3434    { 
    35       $image_path = image_path('/'.sfConfig::get('sf_upload_dir_name').'/'.$include_link.'/'.$value); 
     35      $relativeUploadDirName = str_replace(sfConfig::get('sf_web_dir'), '', sfConfig::get('sf_upload_dir')); 
     36      $image_path = image_path('/'.$relativeUploadDirName.'/'.$include_link.'/'.$value); 
    3637      $image_text = ($include_text = _get_option($options, 'include_text')) ? __($include_text) : __('[show file]'); 
    3738 
  • branches/1.1/lib/plugins/sfCompat10Plugin/lib/helper/PartialHelper.php

    r7614 r7691  
    133133 
    134134  // load component's module config file 
    135   require(sfContext::getInstance()->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/module.yml')); 
     135  require(sfContext::getInstance()->getConfigCache()->checkConfig('modules/'.$moduleName.'/config/module.yml')); 
    136136 
    137137  $componentInstance->getVarHolder()->add($vars); 
  • branches/1.1/lib/plugins/sfCompat10Plugin/lib/view/sfMailView.class.php

    r7614 r7691  
    4040    // require our configuration 
    4141    $moduleName = $this->moduleName; 
    42     require($this->context->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$this->moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/mailer.yml')); 
     42    require($this->context->getConfigCache()->checkConfig('modules/'.$this->moduleName.'/config/mailer.yml')); 
    4343  } 
    4444 
  • branches/1.1/lib/plugins/sfPropelPlugin/lib/task/sfPropelBaseTask.class.php

    r7614 r7691  
    4343      $autoloader->addDirectory($libDir.'/propel'); 
    4444      $autoloader->setClassPath('Propel', $libDir.'/propel/sfPropelAutoload.php'); 
    45       $autoloader->addDirectory(sfConfig::get('sf_model_lib_dir')); 
     45      $autoloader->addDirectory(sfConfig::get('sf_lib_dir').'/model'); 
    4646      $autoloader->addDirectory(sfConfig::get('sf_lib_dir').'/form'); 
    4747      $autoloader->register(); 
  • branches/1.1/lib/plugins/sfPropelPlugin/lib/task/sfPropelGenerateCrudTask.class.php

    r7614 r7691  
    103103    )); 
    104104 
    105     $moduleDir = sfConfig::get('sf_apps_dir').'/'.$arguments['application'].'/'.sfConfig::get('sf_app_module_dir_name').'/'.$arguments['module']; 
     105    $moduleDir = sfConfig::get('sf_app_module_dir').'/'.$arguments['module']; 
    106106 
    107107    // copy our generated module 
     
    132132  protected function executeInit($arguments = array(), $options = array()) 
    133133  { 
    134     $moduleDir = sfConfig::get('sf_apps_dir').'/'.$arguments['application'].'/'.sfConfig::get('sf_app_module_dir_name').'/'.$arguments['module']; 
     134    $moduleDir = sfConfig::get('sf_app_module_dir').'/'.$arguments['module']; 
    135135 
    136136    // create basic application structure 
  • branches/1.1/lib/plugins/sfPropelPlugin/lib/task/sfPropelInitAdminTask.class.php

    r7614 r7691  
    7474    ); 
    7575 
    76     $moduleDir = sfConfig::get('sf_apps_dir').'/'.$arguments['application'].'/'.sfConfig::get('sf_app_module_dir_name').'/'.$arguments['module']; 
     76    $moduleDir = sfConfig::get('sf_app_module_dir').'/'.$arguments['module']; 
    7777 
    7878    // create module structure 
  • branches/1.1/lib/task/cache/sfCacheClearTask.class.php

    r7401 r7691  
    8484 
    8585    // declare type that must be cleaned safely (with a lock file during cleaning) 
    86     $safeTypes = array(sfConfig::get('sf_app_config_dir_name'), sfConfig::get('sf_app_i18n_dir_name')); 
     86    $safeTypes = array('config', 'i18n'); 
    8787 
    8888    // finder to remove all files in a cache directory 
  • branches/1.1/lib/task/generator/sfGenerateAppTask.class.php

    r7614 r7691  
    9696    // Set no_script_name value in settings.yml for production environment 
    9797    $finder = sfFinder::type('file')->name('settings.yml'); 
    98     $this->getFilesystem()->replaceTokens($finder->in($appDir.'/'.sfConfig::get('sf_app_config_dir_name')), '##', '##', array('NO_SCRIPT_NAME' => ($firstApp ? 'on' : 'off'))); 
     98    $this->getFilesystem()->replaceTokens($finder->in($appDir.'/config'), '##', '##', array('NO_SCRIPT_NAME' => ($firstApp ? 'on' : 'off'))); 
    9999 
    100100    $this->getFilesystem()->copy(dirname(__FILE__).'/skeleton/app/web/index.php', sfConfig::get('sf_web_dir').'/'.$indexName.'.php'); 
  • branches/1.1/lib/task/generator/sfGenerateModuleTask.class.php

    r7401 r7691  
    6767  protected function execute($arguments = array(), $options = array()) 
    6868  { 
    69     $app       = $arguments['application']; 
    70     $module    = $arguments['module']; 
     69    $app    = $arguments['application']; 
     70    $module = $arguments['module']; 
    7171 
    72     $moduleDir = sfConfig::get('sf_apps_dir').'/'.$app.'/'.sfConfig::get('sf_app_module_dir_name').'/'.$module; 
     72    $moduleDir = sfConfig::get('sf_app_module_dir').'/'.$module; 
    7373 
    7474    if (is_dir($moduleDir)) 
  • branches/1.1/lib/task/i18n/sfI18nFindTask.class.php

    r7614 r7691  
    4848 
    4949    // Look in templates 
    50     $moduleNames = sfFinder::type('dir')->maxdepth(0)->ignore_version_control()->relative()->in(sfConfig::get('sf_app_dir').'/modules'); 
     50    $moduleNames = sfFinder::type('dir')->maxdepth(0)->ignore_version_control()->relative()->in(sfConfig::get('sf_app_module_dir')); 
    5151    $strings = array(); 
    5252    foreach ($moduleNames as $moduleName) 
    5353    { 
    54       $dir = sfConfig::get('sf_app_dir').'/modules/'.$moduleName.'/templates'; 
     54      $dir = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/templates'; 
    5555      $templates = sfFinder::type('file')->name('*.php')->relative()->in($dir); 
    5656      foreach ($templates as $template) 
  • branches/1.1/lib/util/sfContext.class.php

    r7614 r7691  
    154154 
    155155    // include the factories configuration 
    156     require($this->configuration->getConfigCache()->checkConfig(sfConfig::get('sf_app_config_dir_name').'/factories.yml')); 
     156    require($this->configuration->getConfigCache()->checkConfig('config/factories.yml')); 
    157157 
    158158    $this->dispatcher->notify(new sfEvent($this, 'context.load_factories')); 
  • branches/1.1/lib/view/sfPHPView.class.php

    r7614 r7691  
    104104 
    105105    // require our configuration 
    106     require($this->context->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$this->moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/view.yml')); 
     106    require($this->context->getConfigCache()->checkConfig('modules/'.$this->moduleName.'/config/view.yml')); 
    107107 
    108108    // decorator configuration 
  • branches/1.1/lib/view/sfViewCacheManager.class.php

    r7614 r7691  
    194194    if (!isset($this->loaded[$moduleName])) 
    195195    { 
    196       require($this->context->getConfigCache()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/cache.yml')); 
     196      require($this->context->getConfigCache()->checkConfig('modules/'.$moduleName.'/config/cache.yml')); 
    197197      $this->loaded[$moduleName] = true; 
    198198    }