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; }