Changeset 5384
- Timestamp:
- 10/05/07 21:01:58 (2 years ago)
- Files:
-
- trunk/UPGRADE (modified) (1 diff)
- trunk/data/config/autoload.yml (modified) (1 diff)
- trunk/data/config/config_handlers.yml (modified) (1 diff)
- trunk/data/config/filters.yml (modified) (1 diff)
- trunk/lib/filter/sfExecutionFilter.class.php (modified) (6 diffs)
- trunk/lib/plugins/sfCompat10Plugin/config/config.php (added)
- trunk/lib/plugins/sfCompat10Plugin/lib/filter/sfValidationExecutionFilter.class.php (added)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfCallbackValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfCompareValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfDateValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfEmailValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfFileValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfNumberValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfRegexValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfStringValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfUrlValidator.class.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfValidator.class.php (modified) (2 diffs)
- trunk/lib/plugins/sfCompat10Plugin/test/bootstrap/functional.php (modified) (2 diffs)
- trunk/lib/plugins/sfCompat10Plugin/test/bootstrap/unit.php (added)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/apps/frontend/config/settings.yml (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/config/databases.yml (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/config/schema.xml (deleted)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/data (modified) (1 prop)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/data/fixtures (deleted)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/data/model (deleted)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/data/sql/lib.model.schema.sql (deleted)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/data/sql/sqldb.map (deleted)
- trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/lib/model (deleted)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfCallbackValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfCompareValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfEmailValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfNumberValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfRegexValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfStringValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfUrlValidatorTest.php (modified) (1 diff)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfValidatorBaseTest.php (moved) (moved from trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfValidatorTest.php) (3 diffs)
- trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfValidatorTestHelper.class.php (moved) (moved from trunk/test/unit/sfValidatorTestHelper.class.php)
- trunk/lib/plugins/sfPropelPlugin/config/autoload.yml (modified) (1 diff)
- trunk/lib/plugins/sfPropelPlugin/test/functional/fixtures/apps/backend/config/settings.yml (modified) (1 diff)
- trunk/lib/plugins/sfPropelPlugin/test/functional/fixtures/apps/crud/config/settings.yml (modified) (1 diff)
- trunk/lib/util/sfAutoload.class.php (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/UPGRADE
r5120 r5384 21 21 you upgrade to a new symfony 1.1 beta / RC or the final symfony 1.1, you 22 22 need to launch this task. 23 24 If you don't plan to upgrade the validation system or all your helpers to 25 the new system, you must enable the compatibility mode in `settings.yml`: 26 27 [yml] 28 all: 29 .settings: 30 compat_10: on 31 32 Here is a list of the things that will be enabled when switching to the 33 compatibility mode (see the bundled `sfCompat10Plugin` plugin for 34 more information): 35 36 * Zend Framework and ezComponents bridges 37 * sfProcessCache 38 * validation system (validate.yml, validator classes, ...) 39 * fill in filter 40 * helpers 41 * sfMail with phpmailer 23 42 24 43 The remaining sections explains backward incompatible changes. trunk/data/config/autoload.yml
r5221 r5384 5 5 path: %SF_SYMFONY_LIB_DIR% 6 6 recursive: on 7 exclude: [vendor ]7 exclude: [vendor, plugins] 8 8 9 9 # plugins trunk/data/config/config_handlers.yml
r4853 r5384 53 53 class: sfCacheConfigHandler 54 54 55 modules/*/validate/*.yml:56 class: sfValidatorConfigHandler57 58 55 modules/*/config/module.yml: 59 56 class: sfDefineEnvironmentConfigHandler trunk/data/config/filters.yml
r4934 r5384 29 29 # execution filter must be the last registered filter 30 30 execution: 31 class: sfExecutionFilter31 class: sfExecutionFilter 32 32 param: 33 33 type: execution trunk/lib/filter/sfExecutionFilter.class.php
r5214 r5384 11 11 12 12 /** 13 * sf ExecutionFilter is the last filter registered for each filter chain. This13 * sfValidationExecutionFilter is the last filter registered for each filter chain. This 14 14 * filter does all action and view execution. 15 15 * … … 35 35 $actionInstance = $this->context->getController()->getActionStack()->getLastEntry()->getActionInstance(); 36 36 37 // validate andexecute the action37 // execute the action 38 38 if (sfConfig::get('sf_debug') && sfConfig::get('sf_logging_enabled')) 39 39 { … … 60 60 $timer->addTime(); 61 61 } 62 63 // execute the filter chain (needed if fill-in filter is activated by the validation system)64 $filterChain->execute();65 62 } 66 63 … … 85 82 if (($actionInstance->getRequestMethods() & $method) != $method) 86 83 { 87 // this action will skip validation/execution for this method84 // this action will skip execution for this method 88 85 // get the default view 89 86 return $actionInstance->getDefaultView(); 90 87 } 91 88 92 return $this->validateAction($filterChain, $actionInstance) ? $this->executeAction($actionInstance) : $this->handleErrorAction($actionInstance); 93 } 94 95 /** 96 * Validates an sfAction instance. 97 * 98 * @param sfAction An sfAction instance 99 * 100 * @return boolean True if the action is validated, false otherwise 101 */ 102 protected function validateAction($filterChain, $actionInstance) 103 { 104 $moduleName = $actionInstance->getModuleName(); 105 $actionName = $actionInstance->getActionName(); 106 107 // set default validated status 108 $validated = true; 109 110 // get the current action validation configuration 111 $validationConfig = $moduleName.'/'.sfConfig::get('sf_app_module_validate_dir_name').'/'.$actionName.'.yml'; 112 113 // load validation configuration 114 // do NOT use require_once 115 if (null !== $validateFile = sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_module_dir_name').'/'.$validationConfig, true)) 116 { 117 // create validator manager 118 $validatorManager = new sfValidatorManager($this->context); 119 120 require($validateFile); 121 122 // process validators 123 $validated = $validatorManager->execute(); 124 } 125 126 // process manual validation 127 $validateToRun = 'validate'.ucfirst($actionName); 128 $manualValidated = method_exists($actionInstance, $validateToRun) ? $actionInstance->$validateToRun() : $actionInstance->validate(); 129 130 // action is validated if: 131 // - all validation methods (manual and automatic) return true 132 // - or automatic validation returns false but errors have been 'removed' by manual validation 133 $validated = ($manualValidated && $validated) || ($manualValidated && !$validated && !$this->context->getRequest()->hasErrors()); 134 135 // register fill-in filter 136 if (null !== ($parameters = $this->context->getRequest()->getAttribute('symfony.fillin'))) 137 { 138 $this->registerFillInFilter($filterChain, $parameters); 139 } 140 141 if (!$validated && sfConfig::get('sf_logging_enabled')) 142 { 143 $this->context->getEventDispatcher()->notify(new sfEvent($this, 'application.log', array('Action validation failed'))); 144 } 145 146 return $validated; 89 return $this->executeAction($actionInstance); 147 90 } 148 91 … … 162 105 163 106 return $viewName ? $viewName : sfView::SUCCESS; 164 }165 166 /**167 * Executes the handleError method of an action.168 *169 * @param sfAction An sfAction instance170 *171 * @return string The view type172 */173 protected function handleErrorAction($actionInstance)174 {175 // validation failed176 $handleErrorToRun = 'handleError'.ucfirst($actionInstance->getActionName());177 $viewName = method_exists($actionInstance, $handleErrorToRun) ? $actionInstance->$handleErrorToRun() : $actionInstance->handleError();178 179 return $viewName ? $viewName : sfView::ERROR;180 107 } 181 108 … … 247 174 } 248 175 } 249 250 /**251 * Registers the fill in filter in the filter chain.252 *253 * @param sfFilterChain A sfFilterChain implementation instance254 * @param array An array of parameters to pass to the fill in filter.255 */256 protected function registerFillInFilter($filterChain, $parameters)257 {258 // automatically register the fill in filter if it is not already loaded in the chain259 if (isset($parameters['enabled']) && $parameters['enabled'] && !$filterChain->hasFilter('sfFillInFormFilter'))260 {261 // register the fill in form filter262 $fillInFormFilter = new sfFillInFormFilter($this->context, isset($parameters['param']) ? $parameters['param'] : array());263 $filterChain->register($fillInFormFilter);264 }265 }266 176 } trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfCallbackValidator.class.php
r5320 r5384 29 29 * @version SVN: $Id$ 30 30 */ 31 class sfCallbackValidator extends sfValidator 31 class sfCallbackValidator extends sfValidatorBase 32 32 { 33 33 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfCompareValidator.class.php
r5320 r5384 35 35 * @version SVN: $Id$ 36 36 */ 37 class sfCompareValidator extends sfValidator 37 class sfCompareValidator extends sfValidatorBase 38 38 { 39 39 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfDateValidator.class.php
r5320 r5384 20 20 * @version SVN: $Id$ 21 21 */ 22 class sfDateValidator extends sfValidator 22 class sfDateValidator extends sfValidatorBase 23 23 { 24 24 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfEmailValidator.class.php
r5320 r5384 20 20 * @version SVN: $Id$ 21 21 */ 22 class sfEmailValidator extends sfValidator 22 class sfEmailValidator extends sfValidatorBase 23 23 { 24 24 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfFileValidator.class.php
r5320 r5384 28 28 * @version SVN: $Id$ 29 29 */ 30 class sfFileValidator extends sfValidator 30 class sfFileValidator extends sfValidatorBase 31 31 { 32 32 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfNumberValidator.class.php
r5320 r5384 34 34 * @version SVN: $Id$ 35 35 */ 36 class sfNumberValidator extends sfValidator 36 class sfNumberValidator extends sfValidatorBase 37 37 { 38 38 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfRegexValidator.class.php
r5320 r5384 33 33 * @version SVN: $Id$ 34 34 */ 35 class sfRegexValidator extends sfValidator 35 class sfRegexValidator extends sfValidatorBase 36 36 { 37 37 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfStringValidator.class.php
r5320 r5384 40 40 * @version SVN: $Id$ 41 41 */ 42 class sfStringValidator extends sfValidator 42 class sfStringValidator extends sfValidatorBase 43 43 { 44 44 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfUrlValidator.class.php
r5320 r5384 17 17 * @version SVN: $Id$ 18 18 */ 19 class sfUrlValidator extends sfValidator 19 class sfUrlValidator extends sfValidatorBase 20 20 { 21 21 /** trunk/lib/plugins/sfCompat10Plugin/lib/validator/sfValidator.class.php
r5320 r5384 11 11 12 12 /** 13 * sfValidator allows you to apply constraints to user entered parameters.13 * sfValidatorBase allows you to apply constraints to user entered parameters. 14 14 * 15 15 * @package symfony … … 19 19 * @version SVN: $Id$ 20 20 */ 21 abstract class sfValidator 21 abstract class sfValidatorBase 22 22 { 23 23 protected trunk/lib/plugins/sfCompat10Plugin/test/bootstrap/functional.php
r5320 r5384 8 8 * file that was distributed with this source code. 9 9 */ 10 11 // we need sqlite for functional tests12 if (!extension_loaded('SQLite'))13 {14 return false;15 }16 10 17 11 if (!isset($root_dir)) … … 30 24 sfToolkit::clearDirectory(sfConfig::get('sf_app_cache_dir')); 31 25 32 if (isset($fixtures))33 {34 // initialize database manager35 $databaseManager = new sfDatabaseManager();36 $databaseManager->initialize();37 38 // cleanup database39 $db = sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'/database.sqlite';40 if (file_exists($db))41 {42 unlink($db);43 }44 45 // initialize database46 $sql = file_get_contents(sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'sql'.DIRECTORY_SEPARATOR.'lib.model.schema.sql');47 $sql = preg_replace('/^\s*\-\-.+$/m', '', $sql);48 $sql = preg_replace('/^\s*DROP TABLE .+?$/m', '', $sql);49 $con = Propel::getConnection();50 $tables = preg_split('/CREATE TABLE/', $sql);51 foreach ($tables as $table)52 {53 $table = trim($table);54 if (!$table)55 {56 continue;57 }58 59 $con->executeQuery('CREATE TABLE '.$table);60 }61 62 // load fixtures63 $data = new sfPropelData();64 if (is_array($fixtures))65 {66 $data->loadDataFromArray($fixtures);67 }68 else69 {70 $data->loadData(sfConfig::get('sf_data_dir').'/'.$fixtures);71 }72 }73 74 26 return true; trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/apps/frontend/config/settings.yml
r5320 r5384 22 22 23 23 all: 24 .settings: 25 compat_10: on 26 24 27 # .actions: 25 28 # default_module: default trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/config/databases.yml
r5320 r5384 1 all: 2 propel: 3 class: sfPropelDatabase 4 param: 5 phptype: sqlite 6 database: %SF_DATA_DIR%/database.sqlite 1 #all: 2 # propel: 3 # class: sfPropelDatabase 4 # param: 5 # dsn: mysql://root:@localhost/dbname trunk/lib/plugins/sfCompat10Plugin/test/functional/fixtures/data
- Property svn:ignore changed from
database.sqlite
to
- Property svn:ignore changed from
trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfCallbackValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 13 14 14 $t = new lime_test(11, new lime_output_color()); trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfCompareValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');13 require_once( $_test_dir.'/unit/sfValidatorTestHelper.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 require_once(dirname(__FILE__).'/sfValidatorTestHelper.class.php'); 14 14 15 15 $t = new lime_test(55, new lime_output_color()); trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfEmailValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 13 14 14 $t = new lime_test(28, new lime_output_color()); 15 15 16 16 $context = sfContext::getInstance(); 17 $v = new sfEmailValidator(); 18 $v->initialize($context); 17 $v = new sfEmailValidator($context); 19 18 20 19 // ->execute() trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfNumberValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');13 require_once( $_test_dir.'/unit/sfValidatorTestHelper.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 require_once(dirname(__FILE__).'/sfValidatorTestHelper.class.php'); 14 14 15 15 $t = new lime_test(49, new lime_output_color()); 16 16 17 17 $context = sfContext::getInstance(); 18 $v = new sfNumberValidator(); 19 $v->initialize($context); 18 $v = new sfNumberValidator($context); 20 19 21 20 // ->execute() trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfRegexValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 13 14 14 $t = new lime_test(9, new lime_output_color()); trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfStringValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');13 require_once( $_test_dir.'/unit/sfValidatorTestHelper.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 require_once(dirname(__FILE__).'/sfValidatorTestHelper.class.php'); 14 14 15 15 $t = new lime_test(36, new lime_output_color()); 16 16 17 17 $context = sfContext::getInstance(); 18 $v = new sfStringValidator(); 19 $v->initialize($context); 18 $v = new sfStringValidator($context); 20 19 21 20 // ->execute() trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfUrlValidatorTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 13 14 14 $t = new lime_test(12, new lime_output_color()); 15 15 16 16 $context = sfContext::getInstance(); 17 $v = new sfUrlValidator(); 18 $v->initialize($context); 17 $v = new sfUrlValidator($context); 19 18 20 19 // ->execute() trunk/lib/plugins/sfCompat10Plugin/test/unit/validator/sfValidatorBaseTest.php
r5320 r5384 9 9 */ 10 10 11 require_once(dirname(__FILE__).'/../../ ../../../../test/bootstrap/unit.php');12 require_once($_test_dir.'/ unit/sfContextMock.class.php');11 require_once(dirname(__FILE__).'/../../bootstrap/unit.php'); 12 require_once($_test_dir.'/../../../../test/unit/sfContextMock.class.php'); 13 13 14 14 $t = new lime_test(11, new lime_output_color()); 15 15 16 class myValidator extends sfValidator 16 class myValidator extends sfValidatorBase 17 17 { 18 18 function execute (&$value, &$error) {} … … 20 20 21 21 $context = sfContext::getInstance(); 22 $validator = new myValidator(); 23 $validator->initialize($context); 22 $validator = new myValidator($context); 24 23 25 24 // ->getContext() … … 29 28 30 29 // parameter holder proxy 31 require_once($_test_dir.'/ unit/sfParameterHolderTest.class.php');30 require_once($_test_dir.'/../../../../test/unit/sfParameterHolderTest.class.php'); 32 31 $pht = new sfParameterHolderProxyTest($t); 33 32 $pht->launchTests($validator, 'parameter'); trunk/lib/plugins/sfPropelPlugin/config/autoload.yml
r5221 r5384 10 10 recursive: on 11 11 12 propel_class: 13 name: propel class 14 files: 15 Propel: %SF_SYMFONY_LIB_DIR%/plugins/sfPropelPlugin/lib/propel/sfPropelAutoload.php 16 12 17 propel_addon: 13 18 name: propel addon 14 files: 15 Propel: %SF_SYMFONY_LIB_DIR%/plugins/sfPropelPlugin/lib/propel/sfPropelAutoload.php 19 path: %SF_SYMFONY_LIB_DIR%/plugins/sfPropelPlugin/lib 20 recursive: on 21 exclude: [vendor] trunk/lib/plugins/sfPropelPlugin/test/functional/fixtures/apps/backend/config/settings.yml
r2794 r5384 22 22 23 23 all: 24 .settings: 25 compat_10: on 24 26 # .actions: 25 27 # default_module: default trunk/lib/plugins/sfPropelPlugin/test/functional/fixtures/apps/crud/config/settings.yml
r2794 r5384 22 22 23 23 all: 24 .settings: 25 compat_10: on 24 26 # .actions: 25 27 # default_module: default trunk/lib/util/sfAutoload.class.php
r5231 r5384 25 25 26 26 protected 27 $overriden = array(), 27 28 $classes = array(); 28 29 … … 53 54 } 54 55 56 public function setClassPath($class, $path) 57 { 58 $this->overriden[$class] = $path; 59 60 $this->classes[$class] = $path; 61 } 62 55 63 public function getClassPath($class) 56 64 { … … 68 76 69 77 $this->classes = include($file); 78 79 foreach ($this->overriden as $class => $path) 80 { 81 $this->classes[$class] = $path; 82 } 70 83 } 71 84

