Esempio n. 1
0
 private function readIoCStructure(XMLReader $classesDOM)
 {
     $classes = new IoCClasses();
     while ($classesDOM->read()) {
         if ($classesDOM->name == 'class' || $classesDOM->name == 'factory') {
             $name = $classesDOM->getAttribute('name');
             $alias = $classesDOM->getAttribute('alias');
             $scope = $classesDOM->getAttribute('scope');
             $alias = $alias ? $alias : $name;
             switch ($scope) {
                 case 'singleton':
                     $scope = IoCClass::CLASSSCOPE_SINGLETON;
                     break;
                 case 'global':
                     $scope = IoCClass::CLASSSCOPE_GLOBAL;
                     break;
                 default:
                 case 'prototype':
                     $scope = IoCClass::CLASSSCOPE_PROTOTYPE;
                     break;
             }
             $class = $classesDOM->name == 'class' ? $classes->createClass($name, $alias, $scope) : $classes->createClassFactory($name, $alias, $scope);
             $this->setClassConfiguration($class, $classesDOM);
         }
     }
     return $classes;
 }