Changeset 4957
- Timestamp:
- 09/03/07 10:58:56 (1 year ago)
- Files:
-
- trunk/data/skeleton/batch/default.php (modified) (1 diff)
- trunk/lib/action/sfAction.class.php (modified) (1 diff)
- trunk/lib/action/sfComponent.class.php (modified) (6 diffs)
- trunk/lib/cache/sfCache.class.php (modified) (1 diff)
- trunk/lib/command/sfSymfonyCommandApplication.class.php (modified) (1 diff)
- trunk/lib/config/sfConfigCache.class.php (modified) (2 diffs)
- trunk/lib/config/sfConfigHandler.class.php (modified) (2 diffs)
- trunk/lib/config/sfFactoryConfigHandler.class.php (modified) (9 diffs)
- trunk/lib/config/sfFilterConfigHandler.class.php (modified) (2 diffs)
- trunk/lib/config/sfValidatorConfigHandler.class.php (modified) (1 diff)
- trunk/lib/controller/sfController.class.php (modified) (5 diffs)
- trunk/lib/database/sfDatabase.class.php (modified) (2 diffs)
- trunk/lib/database/sfDatabaseManager.class.php (modified) (2 diffs)
- trunk/lib/filter/sfBasicSecurityFilter.class.php (modified) (1 diff)
- trunk/lib/filter/sfExecutionFilter.class.php (modified) (3 diffs)
- trunk/lib/filter/sfFilter.class.php (modified) (2 diffs)
- trunk/lib/filter/sfSecurityFilter.class.php (deleted)
- trunk/lib/generator/sfGenerator.class.php (modified) (1 diff)
- trunk/lib/generator/sfGeneratorManager.class.php (modified) (2 diffs)
- trunk/lib/helper/PartialHelper.php (modified) (3 diffs)
- trunk/lib/i18n/extract/sfI18nExtract.class.php (modified) (1 diff)
- trunk/lib/i18n/sfI18N.class.php (modified) (1 diff)
- trunk/lib/log/sfLogger.class.php (modified) (1 diff)
- trunk/lib/request/sfRequest.class.php (modified) (2 diffs)
- trunk/lib/response/sfResponse.class.php (modified) (2 diffs)
- trunk/lib/routing/sfPatternRouting.class.php (modified) (1 diff)
- trunk/lib/routing/sfRouting.class.php (modified) (1 diff)
- trunk/lib/storage/sfStorage.class.php (modified) (2 diffs)
- trunk/lib/task/propel/sfPropelDataDumpTask.class.php (modified) (1 diff)
- trunk/lib/task/propel/sfPropelDataLoadTask.class.php (modified) (1 diff)
- trunk/lib/task/propel/sfPropelGenerateCrudTask.class.php (modified) (1 diff)
- trunk/lib/task/sfTask.class.php (modified) (1 diff)
- trunk/lib/user/sfUser.class.php (modified) (3 diffs)
- trunk/lib/util/sfContext.class.php (modified) (1 diff)
- trunk/lib/validator/sfValidator.class.php (modified) (2 diffs)
- trunk/lib/validator/sfValidatorManager.class.php (modified) (2 diffs)
- trunk/lib/view/sfView.class.php (modified) (2 diffs)
- trunk/lib/view/sfViewCacheManager.class.php (modified) (1 diff)
- trunk/test/unit/action/sfComponentTest.php (modified) (1 diff)
- trunk/test/unit/cache/sfAPCCacheTest.php (modified) (1 diff)
- trunk/test/unit/cache/sfCacheTest.php (modified) (1 diff)
- trunk/test/unit/cache/sfEAcceleratorCacheTest.php (modified) (1 diff)
- trunk/test/unit/cache/sfFileCacheTest.php (modified) (2 diffs)
- trunk/test/unit/cache/sfMemcacheCacheTest.php (modified) (1 diff)
- trunk/test/unit/cache/sfNoCacheTest.php (modified) (1 diff)
- trunk/test/unit/cache/sfSQLiteCacheTest.php (modified) (3 diffs)
- trunk/test/unit/cache/sfXCacheCacheTest.php (modified) (1 diff)
- trunk/test/unit/config/fixtures/sfFilterConfigHandler/result.php (modified) (3 diffs)
- trunk/test/unit/controller/sfControllerTest.php (modified) (1 diff)
- trunk/test/unit/controller/sfWebControllerTest.php (modified) (1 diff)
- trunk/test/unit/generator/sfGeneratorTest.php (modified) (1 diff)
- trunk/test/unit/log/sfAggregateLoggerTest.php (modified) (2 diffs)
- trunk/test/unit/log/sfConsoleLoggerTest.php (modified) (1 diff)
- trunk/test/unit/log/sfFileLoggerTest.php (modified) (2 diffs)
- trunk/test/unit/log/sfLoggerTest.php (modified) (2 diffs)
- trunk/test/unit/request/sfRequestTest.php (modified) (2 diffs)
- trunk/test/unit/request/sfWebRequestTest.php (modified) (1 diff)
- trunk/test/unit/response/sfResponseTest.php (modified) (2 diffs)
- trunk/test/unit/response/sfWebResponseTest.php (modified) (5 diffs)
- trunk/test/unit/routing/sfNoRoutingTest.php (modified) (1 diff)
- trunk/test/unit/routing/sfPathInfoRoutingTest.php (modified) (1 diff)
- trunk/test/unit/routing/sfPatternRoutingTest.php (modified) (1 diff)
- trunk/test/unit/sfContextMock.class.php (modified) (2 diffs)
- trunk/test/unit/storage/sfNoStorageTest.php (modified) (1 diff)
- trunk/test/unit/storage/sfPDOSessionStorageTest.php (modified) (2 diffs)
- trunk/test/unit/storage/sfStorageTest.php (modified) (2 diffs)
- trunk/test/unit/task/cache/sfCacheClearTaskTest.php (modified) (2 diffs)
- trunk/test/unit/user/sfBasicSecurityUserTest.php (modified) (3 diffs)
- trunk/test/unit/user/sfUserTest.php (modified) (3 diffs)
- trunk/test/unit/validator/sfCallbackValidatorTest.php (modified) (5 diffs)
- trunk/test/unit/validator/sfCompareValidatorTest.php (modified) (4 diffs)
- trunk/test/unit/validator/sfRegexValidatorTest.php (modified) (3 diffs)
- trunk/test/unit/view/sfViewCacheManagerTest.php (modified) (3 diffs)
- trunk/test/unit/view/sfViewTest.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/data/skeleton/batch/default.php
r1686 r4957 20 20 // initialize database manager 21 21 //$databaseManager = new sfDatabaseManager(); 22 //$databaseManager->initialize();23 22 24 23 // batch process here trunk/lib/action/sfAction.class.php
r4951 r4957 31 31 * @return bool true, if initialization completes successfully, otherwise false 32 32 */ 33 public function initialize($context )34 { 35 parent::initialize($context );33 public function initialize($context, $moduleName, $actionName) 34 { 35 parent::initialize($context, $moduleName, $actionName); 36 36 37 37 // include security configuration 38 38 require(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$this->getModuleName().'/'.sfConfig::get('sf_app_module_config_dir_name').'/security.yml', true)); 39 40 return true;41 39 } 42 40 trunk/lib/action/sfComponent.class.php
r4951 r4957 20 20 { 21 21 protected 22 $moduleName = '', 23 $actionName = '', 22 24 $context = null, 23 25 $dispatcher = null, … … 28 30 29 31 /** 32 * Class constructor. 33 * 34 * @see initialize() 35 */ 36 public function __construct($context, $moduleName, $actionName) 37 { 38 $this->initialize($context, $moduleName, $actionName); 39 } 40 41 /** 30 42 * Initializes this component. 31 43 * … … 34 46 * @return boolean true, if initialization completes successfully, otherwise false 35 47 */ 36 public function initialize($context) 37 { 48 public function initialize($context, $moduleName, $actionName) 49 { 50 $this->moduleName = $moduleName; 51 $this->actionName = $actionName; 38 52 $this->context = $context; 39 53 $this->dispatcher = $context->getEventDispatcher(); … … 42 56 $this->response = $context->getResponse(); 43 57 $this->requestParameterHolder = $this->request->getParameterHolder(); 44 45 return true;46 58 } 47 59 … … 68 80 public function getModuleName() 69 81 { 70 return $this-> context->getModuleName();82 return $this->moduleName; 71 83 } 72 84 … … 78 90 public function getActionName() 79 91 { 80 return $this-> context->getActionName();92 return $this->actionName; 81 93 } 82 94 trunk/lib/cache/sfCache.class.php
r4586 r4957 27 27 28 28 /** 29 * Retrieves a new sfCache implementation instance. 30 * 31 * @param string A sfCache class name 32 * 33 * @return sfCache A sfCache implementation instance 34 * 35 * @throws <b>sfFactoryException</b> If a cache implementation instance cannot be created 36 */ 37 public static function newInstance($class) 38 { 39 $object = new $class(); 40 41 if (!$object instanceof sfCache) 42 { 43 throw new sfFactoryException(sprintf('Class "%s" is not of the type sfCache.', $class)); 44 } 45 46 return $object; 29 * Class constructor. 30 * 31 * @see initialize() 32 */ 33 public function __construct($parameters = array()) 34 { 35 $this->initialize($parameters); 47 36 } 48 37 trunk/lib/command/sfSymfonyCommandApplication.class.php
r4951 r4957 85 85 protected function initializeLogger() 86 86 { 87 $logger = new sfCommandLogger(); 88 $logger->initialize(new sfEventDispatcher(), array('output' => new sfConsoleColorizer())); 87 $logger = new sfCommandLogger(new sfEventDispatcher(), array('output' => new sfConsoleColorizer())); 89 88 $this->setLogger($logger); 90 89 } trunk/lib/config/sfConfigCache.class.php
r4853 r4957 271 271 // manually create our config_handlers.yml handler 272 272 $this->handlers['config_handlers.yml'] = new sfRootConfigHandler(); 273 $this->handlers['config_handlers.yml']->initialize();274 273 275 274 // application configuration handlers … … 354 353 public function registerConfigHandler($handler, $class, $params = array()) 355 354 { 356 $this->userHandlers[$handler] = new $class(); 357 $this->userHandlers[$handler]->initialize($params); 355 $this->userHandlers[$handler] = new $class($params); 358 356 } 359 357 trunk/lib/config/sfConfigHandler.class.php
r3203 r4957 27 27 28 28 /** 29 * Executes this configuration handler29 * Class constructor. 30 30 * 31 * @param array An array of filesystem path to a configuration file 32 * 33 * @return string Data to be written to a cache file 34 * 35 * @throws <b>sfConfigurationException</b> If a requested configuration file does not exist or is not readable 36 * @throws <b>sfParseException</b> If a requested configuration file is improperly formatted 31 * @see initialize() 37 32 */ 38 abstract public function execute($configFiles); 33 public function __construct($parameters = null) 34 { 35 $this->initialize($parameters); 36 } 39 37 40 38 /** … … 52 50 $this->parameterHolder->add($parameters); 53 51 } 52 53 /** 54 * Executes this configuration handler 55 * 56 * @param array An array of filesystem path to a configuration file 57 * 58 * @return string Data to be written to a cache file 59 * 60 * @throws <b>sfConfigurationException</b> If a requested configuration file does not exist or is not readable 61 * @throws <b>sfParseException</b> If a requested configuration file is improperly formatted 62 */ 63 abstract public function execute($configFiles); 54 64 55 65 /** trunk/lib/config/sfFactoryConfigHandler.class.php
r4951 r4957 45 45 // init our data and includes arrays 46 46 $includes = array(); 47 $inits = array();48 47 $instances = array(); 49 48 … … 99 98 { 100 99 case 'controller': 101 // append instance creation 102 $instances[] = sprintf(" \$this->factories['controller'] = sfController::newInstance(sfConfig::get('sf_factory_controller', '%s'));", $class); 103 104 // append instance initialization 105 $inits[] = " \$this->factories['controller']->initialize(\$this);"; 100 $instances[] = sprintf(" \$class = sfConfig::get('sf_factory_controller', '%s');\n \$this->factories['controller'] = new \$class(\$this);", $class); 106 101 break; 107 102 108 103 case 'request': 109 // append instance creation 110 $instances[] = sprintf(" \$this->factories['request'] = sfRequest::newInstance(sfConfig::get('sf_factory_request', '%s'));", $class); 111 112 // append instance initialization 113 $inits[] = sprintf(" \$this->factories['request']->initialize(\$this->dispatcher, sfConfig::get('sf_factory_request_parameters', %s), sfConfig::get('sf_factory_request_attributes', array()));", var_export($parameters, true)); 104 $instances[] = sprintf(" \$class = sfConfig::get('sf_factory_request', '%s');\n \$this->factories['request'] = new \$class(\$this->dispatcher, sfConfig::get('sf_factory_request_parameters', %s), sfConfig::get('sf_factory_request_attributes', array()));", $class, var_export($parameters, true)); 114 105 break; 115 106 116 107 case 'response': 117 // append instance creation 118 $instances[] = sprintf(" \$this->factories['response'] = sfResponse::newInstance(sfConfig::get('sf_factory_response', '%s'));", $class); 119 120 // append instance initialization 121 $inits[] = sprintf(" \$this->factories['response']->initialize(\$this->dispatcher, sfConfig::get('sf_factory_response_parameters', %s));", var_export($parameters, true)); 122 $inits[] = sprintf(" if ('HEAD' == \$this->factories['request']->getMethodName())\n { \n \$this->factories['response']->setHeaderOnly(true);\n }\n"); 108 $instances[] = sprintf(" \$class = sfConfig::get('sf_factory_response', '%s');\n \$this->factories['response'] = new \$class(\$this->dispatcher, sfConfig::get('sf_factory_response_parameters', %s));", $class, var_export($parameters, true)); 109 110 $instances[] = sprintf(" if ('HEAD' == \$this->factories['request']->getMethodName())\n { \n \$this->factories['response']->setHeaderOnly(true);\n }\n"); 123 111 break; 124 112 125 113 case 'storage': 126 // append instance creation127 $instances[] = sprintf(" \$this->factories['storage'] = sfStorage::newInstance(sfConfig::get('sf_factory_storage', '%s'));", $class);128 129 // append instance initialization130 114 $defaultParameters = array(); 131 115 $defaultParameters[] = sprintf("'session_id' => \$this->getRequest()->getParameter('%s'),", $parameters['session_name']); … … 134 118 $defaultParameters[] = sprintf("'database' => \$this->getDatabaseManager()->getDatabase('%s'),", isset($parameters['database']) ? $parameters['database'] : 'default'); 135 119 } 136 $inits[] = sprintf(" \$this->factories['storage']->initialize(array_merge(array(\n%s\n), sfConfig::get('sf_factory_storage_parameters', %s)));", implode("\n", $defaultParameters), var_export($parameters, true)); 120 121 $instances[] = sprintf(" \$class = sfConfig::get('sf_factory_storage', '%s');\n \$this->factories['storage'] = new \$class(array_merge(array(\n%s\n), sfConfig::get('sf_factory_storage_parameters', %s)));", $class, implode("\n", $defaultParameters), var_export($parameters, true)); 137 122 break; 138 123 139 124 case 'user': 140 // append instance creation 141 $instances[] = sprintf(" \$this->factories['user'] = sfUser::newInstance(sfConfig::get('sf_factory_user', '%s'));", $class); 142 143 // append instance initialization 144 $inits[] = sprintf(" \$this->factories['user']->initialize(\$this->dispatcher, \$this->factories['storage'], array_merge(array('culture' => \$this->factories['request']->getParameter('sf_culture'), 'default_culture' => sfConfig::get('sf_i18n_default_culture'), 'use_flash' => sfConfig::get('sf_use_flash')), sfConfig::get('sf_factory_user_parameters', %s)));", var_export(is_array($parameters) ? $parameters : array(), true)); 125 $instances[] = sprintf(" \$class = sfConfig::get('sf_factory_user', '%s');\n \$this->factories['user'] = new \$class(\$this->dispatcher, \$this->factories['storage'], array_merge(array('culture' => \$this->factories['request']->getParameter('sf_culture'), 'default_culture' => sfConfig::get('sf_i18n_default_culture'), 'use_flash' => sfConfig::get('sf_use_flash')), sfConfig::get('sf_factory_user_parameters', %s)));", $class, var_export(is_array($parameters) ? $parameters : array(), true)); 145 126 break; 146 127 147 128 case 'view_cache': 148 // append view cache class name 149 $inits[] = sprintf("\n if (sfConfig::get('sf_cache'))\n {\n". 150 " \$this->factories['viewCacheManager'] = new sfViewCacheManager();\n". 151 " \$cache = sfCache::newInstance(sfConfig::get('sf_factory_view_cache', '%s'));\n". 152 " \$cache->initialize(sfConfig::get('sf_factory_view_cache_parameters', %s));\n". 153 " \$this->factories['viewCacheManager']->initialize(\$this, \$cache);\n". 129 $instances[] = sprintf("\n if (sfConfig::get('sf_cache'))\n {\n". 130 " \$class = sfConfig::get('sf_factory_view_cache', '%s');\n". 131 " \$cache = new \$class(sfConfig::get('sf_factory_view_cache_parameters', %s));\n". 132 " \$this->factories['viewCacheManager'] = new sfViewCacheManager(\$this, \$cache);\n". 154 133 " }\n". 155 134 " else\n". … … 161 140 162 141 case 'i18n': 163 // append i18n instance initialization164 142 if (isset($parameters['cache'])) 165 143 { 166 $cache = sprintf(" \$cache = sfCache::newInstance('%s');\n \$cache->initialize(%s);\n", $parameters['cache']['class'], var_export($parameters['cache']['param'], true));144 $cache = sprintf(" \$cache = new %s(%s);\n", $parameters['cache']['class'], var_export($parameters['cache']['param'], true)); 167 145 unset($parameters['cache']); 168 146 } … … 171 149 $cache = " \$cache = null;\n"; 172 150 } 173 $in its[] = sprintf("\n if (sfConfig::get('sf_i18n'))\n {\n".151 $instances[] = sprintf("\n if (sfConfig::get('sf_i18n'))\n {\n". 174 152 " \$class = sfConfig::get('sf_factory_i18n', '%s');\n". 175 " \$this->factories['i18n'] = new \$class();\n".176 153 "%s". 177 " \$this->factories['i18n'] ->initialize(\$this, \$cache);\n".154 " \$this->factories['i18n'] = new \$class(\$this, \$cache);\n". 178 155 " }\n" 179 156 , $class, $cache … … 182 159 183 160 case 'routing': 184 // append instance creation185 $instances[] = sprintf(" \$this->factories['routing'] = sfRouting::newInstance(sfConfig::get('sf_factory_routing', '%s'));", $class);186 187 // append instance initialization188 $inits[] = sprintf(" \$this->factories['routing']->initialize(\$this->dispatcher, array_merge(array('suffix' => sfConfig::get('sf_suffix'), 'default_module' => sfConfig::get('sf_default_module'), 'default_action' => sfConfig::get('sf_default_action')), sfConfig::get('sf_factory_routing_parameters', %s)));", var_export(is_array($parameters) ? $parameters : array(), true));161 $instances[] = sprintf(" \$class = sfConfig::get('sf_factory_routing', '%s');\n \$this->factories['routing'] = new \$class(\$this->dispatcher, array_merge(array('suffix' => sfConfig::get('sf_suffix'), 'default_module' => sfConfig::get('sf_default_module'), 'default_action' => sfConfig::get('sf_default_action')), sfConfig::get('sf_factory_routing_parameters', %s)));", $class, var_export(is_array($parameters) ? $parameters : array(), true)); 162 if (isset($parameters['load_configuration']) && $parameters['load_configuration']) 163 { 164 $instances[] = " \$this->factories['routing']->loadConfiguration();\n"; 165 } 189 166 break; 190 167 191 168 case 'logger': 192 // append instance creation and initialization193 169 $loggers = ''; 194 170 if (isset($parameters['loggers'])) … … 217 193 { 218 194 // create logger instance 219 $loggers .= sprintf("\n\$logger = sfLogger::newInstance('%s');\n\$logger->initialize(\$this->dispatcher, %s);\n\$this->factories['logger']->addLogger(\$logger);\n",195 $loggers .= sprintf("\n\$logger = new %s(\$this->dispatcher, %s);\n\$this->factories['logger']->addLogger(\$logger);\n", 220 196 $keys['class'], 221 197 isset($keys['param']) ? var_export($keys['param'], true) : '' … … 228 204 229 205 $instances[] = sprintf( 230 " \$this->factories['logger'] = sfLogger::newInstance(sfConfig::get('sf_factory_logger', '%s'));\n". 231 " \$this->factories['logger']->initialize(\$this->dispatcher, sfConfig::get('sf_factory_logger_parameters', %s));\n". 206 " \$class = sfConfig::get('sf_factory_logger', '%s');\n \$this->factories['logger'] = new \$class(\$this->dispatcher, sfConfig::get('sf_factory_logger_parameters', %s));\n". 232 207 " %s" 233 208 , $class, var_export($parameters, true), $loggers); … … 239 214 $retval = sprintf("<?php\n". 240 215 "// auto-generated by sfFactoryConfigHandler\n". 241 "// date: %s\n%s\n%s\n %s\n",216 "// date: %s\n%s\n%s\n", 242 217 date('Y/m/d H:i:s'), implode("\n", $includes), 243 implode("\n", $instances) , implode("\n", $inits));218 implode("\n", $instances)); 244 219 245 220 return $retval; trunk/lib/config/sfFilterConfigHandler.class.php
r4597 r4957 164 164 { 165 165 return sprintf("\nlist(\$class, \$parameters) = (array) sfConfig::get('sf_%s_filter', array('%s', %s));\n". 166 "\$filter = new \$class();\n". 167 "\$filter->initialize(\$this->context, \$parameters);\n". 166 "\$filter = new \$class(\$this->context, \$parameters);\n". 168 167 "\$filterChain->register(\$filter);", 169 168 $category, $class, $parameters); … … 186 185 if (\$actionInstance->isSecure()) 187 186 { 188 if (!in_array('sfSecurityUser', class_implements(\$this->context->getUser())))189 {190 throw new sfSecurityException('Security is enabled, but your "sfUser" implementation does not implement "sfSecurityUser" interface.');191 }192 187 {$this->addFilter($category, $class, $parameters)} 193 188 } trunk/lib/config/sfValidatorConfigHandler.class.php
r4597 r4957 178 178 $validator =& $validators[$valName]; 179 179 180 $data[] = sprintf(" \$validators['%s'] = new %s();\n". 181 " \$validators['%s']->initialize(\$this->context, %s);", 182 $valName, $validator['class'], $valName, $validator['parameters']); 180 $data[] = sprintf(" \$validators['%s'] = new %s(\$this->context, %s);\n", 181 $valName, $validator['class'], $validator['parameters']); 183 182 184 183 // mark this validator as created for this request method trunk/lib/controller/sfController.class.php
r4951 r4957 29 29 30 30 /** 31 * Class constructor. 32 * 33 * @see initialize() 34 */ 35 public function __construct($context) 36 { 37 $this->initialize($context); 38 } 39 40 /** 41 * Initializes this controller. 42 * 43 * @param sfContext A sfContext implementation instance 44 */ 45 public function initialize($context) 46 { 47 $this->context = $context; 48 $this->dispatcher = $context->getEventDispatcher(); 49 50 if (sfConfig::get('sf_logging_enabled')) 51 { 52 $this->dispatcher->notify(new sfEvent($this, 'application.log', array('Initialization'))); 53 } 54 55 // set max forwards 56 $this->maxForwards = sfConfig::get('sf_max_forwards'); 57 } 58 59 /** 31 60 * Indicates whether or not a module has a specific component. 32 61 * … … 206 235 } 207 236 237 // module enabled? 208 238 if (sfConfig::get('mod_'.strtolower($moduleName).'_enabled')) 209 239 { 210 // module is enabled211 212 240 // check for a module config.php 213 241 $moduleConfig = sfConfig::get('sf_app_module_dir').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/config.php'; … … 217 245 } 218 246 219 // initialize the action 220 if ($actionInstance->initialize($this->context)) 221 { 222 // create a new filter chain 223 $filterChain = new sfFilterChain(); 224 225 require(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/filters.yml')); 226 227 $this->context->getEventDispatcher()->notify(new sfEvent($this, 'controller.change_action', array('module' => $moduleName, 'action' => $actionName))); 228 229 // process the filter chain 230 $filterChain->execute(); 231 } 232 else 233 { 234 // action failed to initialize 235 throw new sfInitializationException(sprintf('Action initialization failed for module "%s", action "%s".', $moduleName, $actionName)); 236 } 247 // create a new filter chain 248 $filterChain = new sfFilterChain(); 249 250 require(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$moduleName.'/'.sfConfig::get('sf_app_module_config_dir_name').'/filters.yml')); 251 252 $this->context->getEventDispatcher()->notify(new sfEvent($this, 'controller.change_action', array('module' => $moduleName, 'action' => $actionName))); 253 254 // process the filter chain 255 $filterChain->execute(); 237 256 } 238 257 else 239 258 { 240 // module is disabled241 259 $moduleName = sfConfig::get('sf_module_disabled_module'); 242 260 $actionName = sfConfig::get('sf_module_disabled_action'); … … 307 325 } 308 326 309 return new $class( );327 return new $class($this->context, $moduleName, $controllerName); 310 328 } 311 329 … … 363 381 { 364 382 // view class (as configured in module.yml or defined in action) 365 $viewName = $this->context->getRequest()->getAttribute($moduleName.'_'.$actionName.'_view_name', sfConfig::get('mod_'.strtolower($moduleName).'_view_class'), 'symfony/action/view'); 366 $class = sfAutoload::getClassPath($viewName.'View') ? $viewName.'View' : 'sfPHPView'; 367 } 368 369 return new $class(); 370 } 371 372 /** 373 * Initializes this controller. 374 * 375 * @param sfContext A sfContext implementation instance 376 */ 377 public function initialize($context) 378 { 379 $this->context = $context; 380 $this->dispatcher = $context->getEventDispatcher(); 381 382 if (sfConfig::get('sf_logging_enabled')) 383 { 384 $this->dispatcher->notify(new sfEvent($this, 'application.log', array('Initialization'))); 385 } 386 387 // set max forwards 388 $this->maxForwards = sfConfig::get('sf_max_forwards'); 389 } 390 391 /** 392 * Retrieves a new sfController implementation instance. 393 * 394 * @param string A sfController class name 395 * 396 * @return sfController A sfController implementation instance 397 * 398 * @throws sfFactoryException If a new controller implementation instance cannot be created 399 */ 400 public static function newInstance($class) 401 { 402 try 403 { 404 $object = new $class(); 405 406 if (!$object instanceof sfController) 407 { 408 throw new sfFactoryException(sprintf('Class "%s" is not of the type "sfController".', $class)); 409 } 410 411 return $object; 412 } 413 catch (sfException $e) 414 { 415 $e->printStackTrace(); 416 } 383 $viewClassName = $this->context->getRequest()->getAttribute($moduleName.'_'.$actionName.'_view_name', sfConfig::get('mod_'.strtolower($moduleName).'_view_class'), 'symfony/action/view'); 384 $class = sfAutoload::getClassPath($viewClassName.'View') ? $viewClassName.'View' : 'sfPHPView'; 385 } 386 387 return new $class($this->context, $moduleName, $actionName, $viewName); 417 388 } 418 389 trunk/lib/database/sfDatabase.class.php
r4890 r4957 26 26 $connection = null, 27 27 $resource = null; 28 29 /** 30 * Class constructor. 31 * 32 * @see initialize() 33 */ 34 public function __construct($parameters = array()) 35 { 36 $this->initialize($parameters); 37 } 38 39 /** 40 * Initializes this sfDatabase object. 41 * 42 * @param array An associative array of initialization parameters 43 * 44 * @return bool true, if initialization completes successfully, otherwise false 45 * 46 * @throws <b>sfInitializationException</b> If an error occurs while initializing this sfDatabase object 47 */ 48 public function initialize($parameters = array()) 49 { 50 $this->parameterHolder = new sfParameterHolder(); 51 $this->parameterHolder->add($parameters); 52 } 28 53 29 54 /** … … 69 94 70 95 return $this->resource; 71 }72 73 /**74 * Initializes this sfDatabase object.75 *76 * @param array An associative array of initialization parameters77 *78 * @return bool true, if initialization completes successfully, otherwise false79 *80 * @throws <b>sfInitializationException</b> If an error occurs while initializing this sfDatabase object81 */82 public function initialize($parameters = array())83 {84 $this->parameterHolder = new sfParameterHolder();85 $this->parameterHolder->add($parameters);86 96 } 87 97 trunk/lib/database/sfDatabaseManager.class.php
r4597 r4957 27 27 28 28 /** 29 * Class constructor. 30 * 31 * @see initialize() 32 */ 33 public function __construct() 34 { 35 $this->initialize(); 36 } 37 38 /** 39 * Initializes this sfDatabaseManager object 40 * 41 * @return bool true, if initialization completes successfully, otherwise false 42 * 43 * @throws <b>sfInitializationException</b> If an error occurs while initializing this sfDatabaseManager object 44 */ 45 public function initialize() 46 { 47 // load database configuration 48 require(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_config_dir_name').'/databases.yml')); 49 } 50 51 /** 29 52 * Retrieves the database connection associated with this sfDatabase implementation. 30 53 * … … 47 70 48 71 /** 49 * Initializes this sfDatabaseManager object50 *51 * @return bool true, if initialization completes successfully, otherwise false52 *53 * @throws <b>sfInitializationException</b> If an error occurs while initializing this sfDatabaseManager object54 */55 public function initialize()56 {57 // load database configuration58 require(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_config_dir_name').'/databases.yml'));59 }60 61 /**62 72 * Executes the shutdown procedure 63 73 * trunk/lib/filter/sfBasicSecurityFilter.class.php
r4593 r4957 21 21 * @version SVN: $Id$ 22 22 */ 23 class sfBasicSecurityFilter extends sf SecurityFilter23 class sfBasicSecurityFilter extends sfFilter 24 24 { 25 25 /** trunk/lib/filter/sfExecutionFilter.class.php
r4951 r4957 116 116 { 117 117 // create validator manager 118 $validatorManager = new sfValidatorManager(); 119 $validatorManager->initialize($this->context); 118 $validatorManager = new sfValidatorManager($this->context); 120 119 121 120 require($validateFile); … … 227 226 // get the view instance 228 227 $view = $controller->getView($moduleName, $actionName, $viewName); 229 $view->initialize($this->context, $moduleName, $actionName, $viewName);230 228 231 229 // execute the view … … 265 263 { 266 264 // register the fill in form filter 267 $fillInFormFilter = new sfFillInFormFilter(); 268 $fillInFormFilter->initialize($this->context, isset($parameters['param']) ? $parameters['param'] : array()); 265 $fillInFormFilter = new sfFillInFormFilter($this->context, isset($parameters['param']) ? $parameters['param'] : array()); 269 266 $filterChain->register($fillInFormFilter); 270 267 } trunk/lib/filter/sfFilter.class.php
r3525 r4957 29 29 30 30 /** 31 * Class constructor. 32 * 33 * @see initialize() 34 */ 35 public function __construct($context, $parameters = array()) 36 { 37 $this->initialize($context, $parameters); 38 } 39 40 /** 41 * Initializes this Filter. 42 * 43 * @param sfContext The current application context 44 * @param array An associative array of initialization parameters 45 * 46 * @return boolean true, if initialization completes successfully, otherwise false 47 * 48 * @throws <b>sfInitializationException</b> If an error occurs while initializing this Filter 49 */ 50 public function initialize($context, $parameters = array()) 51 { 52 $this->context = $context; 53 54 $this->parameterHolder = new sfParameterHolder(); 55 $this->parameterHolder->add($parameters); 56 57 return true; 58 } 59 60 /** 31 61 * Returns true if this is the first call to the sfFilter instance. 32 62 * … … 56 86 { 57 87 return $this->context; 58 }59 60 /**61 * Initializes this Filter.62 *63 * @param sfContext The current application context64 * @param array An associative array of initialization parameters65 *66 * @return boolean true, if initialization completes successfully, otherwise false67 *68 * @throws <b>sfInitializationException</b> If an error occurs while initializing this Filter69 */70 public function initialize($context, $parameters = array())71 {72 $this->context = $context;73 74 $this->parameterHolder = new sfParameterHolder();75 $this->parameterHolder->add($parameters);76 77 return true;78 88 } 79 89 trunk/lib/generator/sfGenerator.class.php
r4951 r4957 27 27 28 28 /** 29 * Class constructor. 30 * 31 * @see initialize() 32 */ 33 public function __construct(sfGeneratorManager $generatorManager) 34 { 35 $this->initialize($generatorManager); 36 } 37 38 /** 29 39 * Initializes the current sfGenerator instance. 30 40 * trunk/lib/generator/sfGeneratorManager.class.php
r4578 r4957 19 19 class sfGeneratorManager 20 20 { 21 /** 22 * Class constructor. 23 * 24 * @see initialize() 25 */ 26 public function __construct() 27 { 28 $this->initialize(); 29 } 30 21 31 /** 22 32 * Initializes the sfGeneratorManager instance.