View source
<?php
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
use Symfony\Component\DependencyInjection\Exception\LogicException;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
class ProjectServiceContainer extends Container {
private $parameters;
private $targetDirs = array();
public function __construct() {
parent::__construct(new ParameterBag($this
->getDefaultParameters()));
$this->methodMap = array(
'bar' => 'getBarService',
'baz' => 'getBazService',
'configurator_service' => 'getConfiguratorServiceService',
'configured_service' => 'getConfiguredServiceService',
'decorated' => 'getDecoratedService',
'decorator_service' => 'getDecoratorServiceService',
'decorator_service_with_name' => 'getDecoratorServiceWithNameService',
'factory_service' => 'getFactoryServiceService',
'foo' => 'getFooService',
'foo.baz' => 'getFoo_BazService',
'foo_bar' => 'getFooBarService',
'foo_with_inline' => 'getFooWithInlineService',
'inlined' => 'getInlinedService',
'method_call1' => 'getMethodCall1Service',
'new_factory' => 'getNewFactoryService',
'new_factory_service' => 'getNewFactoryServiceService',
'request' => 'getRequestService',
'service_from_static_method' => 'getServiceFromStaticMethodService',
);
$this->aliases = array(
'alias_for_alias' => 'foo',
'alias_for_foo' => 'foo',
);
}
protected function getBarService() {
$a = $this
->get('foo.baz');
$this->services['bar'] = $instance = new \Bar\FooClass('foo', $a, $this
->getParameter('foo_bar'));
$a
->configure($instance);
return $instance;
}
protected function getBazService() {
$this->services['baz'] = $instance = new \Baz();
$instance
->setFoo($this
->get('foo_with_inline'));
return $instance;
}
protected function getConfiguredServiceService() {
$this->services['configured_service'] = $instance = new \stdClass();
$this
->get('configurator_service')
->configureStdClass($instance);
return $instance;
}
protected function getDecoratedService() {
return $this->services['decorated'] = new \stdClass();
}
protected function getDecoratorServiceService() {
return $this->services['decorator_service'] = new \stdClass();
}
protected function getDecoratorServiceWithNameService() {
return $this->services['decorator_service_with_name'] = new \stdClass();
}
protected function getFactoryServiceService() {
return $this->services['factory_service'] = $this
->get('foo.baz')
->getInstance();
}
protected function getFooService() {
$a = $this
->get('foo.baz');
$this->services['foo'] = $instance = \Bar\FooClass::getInstance('foo', $a, array(
$this
->getParameter('foo') => 'foo is ' . $this
->getParameter('foo') . '',
'foobar' => $this
->getParameter('foo'),
), true, $this);
$instance
->setBar($this
->get('bar'));
$instance
->initialize();
$instance->foo = 'bar';
$instance->moo = $a;
$instance->qux = array(
$this
->getParameter('foo') => 'foo is ' . $this
->getParameter('foo') . '',
'foobar' => $this
->getParameter('foo'),
);
sc_configure($instance);
return $instance;
}
protected function getFoo_BazService() {
$this->services['foo.baz'] = $instance = call_user_func(array(
$this
->getParameter('baz_class'),
'getInstance',
));
call_user_func(array(
$this
->getParameter('baz_class'),
'configureStatic1',
), $instance);
return $instance;
}
protected function getFooBarService() {
$class = $this
->getParameter('foo_class');
return new $class();
}
protected function getFooWithInlineService() {
$this->services['foo_with_inline'] = $instance = new \Foo();
$instance
->setBar($this
->get('inlined'));
return $instance;
}
protected function getMethodCall1Service() {
require_once '%path%foo.php';
$this->services['method_call1'] = $instance = new \Bar\FooClass();
$instance
->setBar($this
->get('foo'));
$instance
->setBar($this
->get('foo2', ContainerInterface::NULL_ON_INVALID_REFERENCE));
if ($this
->has('foo3')) {
$instance
->setBar($this
->get('foo3', ContainerInterface::NULL_ON_INVALID_REFERENCE));
}
if ($this
->has('foobaz')) {
$instance
->setBar($this
->get('foobaz', ContainerInterface::NULL_ON_INVALID_REFERENCE));
}
$instance
->setBar($this
->get("foo")
->foo() . ($this
->hasparameter("foo") ? $this
->getParameter("foo") : "default"));
return $instance;
}
protected function getNewFactoryServiceService() {
$this->services['new_factory_service'] = $instance = $this
->get('new_factory')
->getInstance();
$instance->foo = 'bar';
return $instance;
}
protected function getRequestService() {
throw new RuntimeException('You have requested a synthetic service ("request"). The DIC does not know how to construct this service.');
}
protected function getServiceFromStaticMethodService() {
return $this->services['service_from_static_method'] = \Bar\FooClass::getInstance();
}
protected function getConfiguratorServiceService() {
$this->services['configurator_service'] = $instance = new \ConfClass();
$instance
->setFoo($this
->get('baz'));
return $instance;
}
protected function getInlinedService() {
$this->services['inlined'] = $instance = new \Bar();
$instance
->setBaz($this
->get('baz'));
$instance->pub = 'pub';
return $instance;
}
protected function getNewFactoryService() {
$this->services['new_factory'] = $instance = new \FactoryClass();
$instance->foo = 'bar';
return $instance;
}
protected function getDefaultParameters() {
return array(
'baz_class' => 'BazClass',
'foo_class' => 'Bar\\FooClass',
'foo' => 'bar',
);
}
}