Esempio n. 1
0
 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;
 }
Esempio n. 2
0
    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);
/*