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;
 }
Esempio n. 2
0
}
/*
 * We need to configure the IoC Factory
 * telling where it will find the configuration
 * xml file.
 *
 * THIS IS MANDATORY, DEFAULT XML FILE IS NO LONGER AVAILABLE
 */
$IoCConfiguration = new IoCClasses();
$XMLParser = new IoCXMLParser();
$IoCConfiguration->merge($XMLParser->parseFile(dirname(__FILE__) . '/conf.xml'));
/*
$IoCConfiguration
->createClass('injected', false, IoCClass::CLASSSCOPE_SINGLETON);
*/
$IoCConfiguration->createClass('injectionA')->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_REF, 'injected'))->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_EVAL, '$_SERVER[\'some\']'))->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_VALUE, 'some some'));
/*
$IoCConfiguration->createClass('injectionB')
	->createSetter('set_injected')
->withArgument(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_REF, 'injected'));
*/
$IoCConfiguration->createClass('injectionD')->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_REF, 'injected'))->createSetter('setCaca')->withArgument(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_EVAL, '$_SERVER[\'some\']'))->withProperty('property', new IoCArgumentValue(IoCArgumentValue::VALUETYPE_VALUE, 'property'))->createSetter('setString')->withArgument(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_VALUE, 'some some'));
$IoCConfiguration->createClass('injectionA', 'injASingletonated', IoCClass::CLASSSCOPE_SINGLETON)->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_REF, 'injected'))->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_EVAL, '$_SERVER[\'some\']'))->withConstructArg(new IoCArgumentValue(IoCArgumentValue::VALUETYPE_VALUE, 'some some'));
//print_r($IoCConfiguration);
IoCFactory::setConfiguration($IoCConfiguration);
/*
 * Some testing data to assing using IoC to the composed
 * objects.
 */
$_SESSION['current_user'] = array('user_firstname' => 'john', 'user_id' => 1);
$_SERVER['some'] = 'Enviroment value of some';