public function parse($subject) { $classes = new IoCClasses(); $xmlReader = new XMLReader(); $xmlReader->XML($subject); $xmlReader->setSchema(dirname(__FILE__) . '/xmlValidator.xsd'); while ($xmlReader->read()) { if ($xmlReader->nodeType == XMLReader::ELEMENT) { while ($xmlReader->name == 'classes') { $classes->merge($this->readIoCStructure($xmlReader)); $xmlReader->next(); } } } $xmlReader->close(); return $classes; }
public function produce($instance) { $instance->producedProperty = 'yes, I was produced in the super factory'; return $instance; } } /* * 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); /*