* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Loader\Configurator; use Symfony\Component\DependencyInjection\Argument\IteratorArgument; use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; use Symfony\Component\ExpressionLanguage\Expression; /** * @author Nicolas Grekas */ class ContainerConfigurator extends AbstractConfigurator { const FACTORY = 'container'; private $container; private $loader; private $instanceof; private $path; private $file; public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, $path, $file) { $this->container = $container; $this->loader = $loader; $this->instanceof = &$instanceof; $this->path = $path; $this->file = $file; } final public function extension($namespace, array $config) { if (!$this->container->hasExtension($namespace)) { $extensions = array_filter(array_map(function ($ext) { return $ext->getAlias(); }, $this->container->getExtensions())); throw new InvalidArgumentException(sprintf( 'There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s', $namespace, $this->file, $namespace, $extensions ? sprintf('"%s"', implode('", "', $extensions)) : 'none' )); } $this->container->loadFromExtension($namespace, static::processValue($config)); } final public function import($resource, $type = null, $ignoreErrors = false) { $this->loader->setCurrentDir(dirname($this->path)); $this->loader->import($resource, $type, $ignoreErrors, $this->file); } /** * @return ParametersConfigurator */ final public function parameters() { return new ParametersConfigurator($this->container); } /** * @return ServicesConfigurator */ final public function services() { return new ServicesConfigurator($this->container, $this->loader, $this->instanceof); } } /** * Creates a service reference. * * @param string $id * * @return ReferenceConfigurator */ function ref($id) { return new ReferenceConfigurator($id); } /** * Creates an inline service. * * @param string|null $class * * @return InlineServiceConfigurator */ function inline($class = null) { return new InlineServiceConfigurator(new Definition($class)); } /** * Creates a lazy iterator. * * @param ReferenceConfigurator[] $values * * @return IteratorArgument */ function iterator(array $values) { return new IteratorArgument(AbstractConfigurator::processValue($values, true)); } /** * Creates a lazy iterator by tag name. * * @param string $tag * * @return TaggedIteratorArgument */ function tagged($tag) { return new TaggedIteratorArgument($tag); } /** * Creates an expression. * * @param string $expression an expression * * @return Expression */ function expr($expression) { return new Expression($expression); } __halt_compiler();----SIGNATURE:----AjkqwKgQp7gFFLsV+rN33RR7FsYWHRuSstdEjvPEJ6PqU6fKBjEAYQ2O1NVZDWWfzK+uCoD/r72R1EH1r29efecKEfKxcH31hoss8uF/jbNkQbjObjufloY2HUF5GfVAIrp7Gw99L0r5wjNwhooBkD2Ln5jxdHfH5WFaVwONiFCHNGo2wluQeXu3MIX2GJVaVocO0qHfV/FlUat/O+ZvX1cDcRuhys4KAgvEG9bp2VoD+dvr35cvx7j9JaGxFGjYzZexImOOSNkE53H9mI4IsNMudJUb0fF35S2B6Pwx3TjtYhlirhfse6ILfkeSQip204suTRmUh4i184meQipL2HA/fOzp0ryNknqRhc3+YpDCTxtRgVsGR21JQsCCb3V2Lbc11lYL8VjZNffEPIZsD7UagzJV+hc2cCd3G4mAhck5AIvVlayJxl3SEYh/4AQvmzl7g0SVEr6kcjSs/mCmWnz/BrL5Nxq5SFBcD2X93+wIC7+kobBu9oyXoBFKVBkTcuUJMTCyyPnc8n5S1qN+NX5Yb6jCsDQKWRAn0XXDpahcRcKbkvEL31tVNN/Ls911ZquTVqGJrXSERjNvVxYYKi15z5ZMwK/Z26/qA4V+4B3HotoCl0O85S94EUK9JYkTnpwgcALCZs5v/WeX2NlnHOUnRohQuqEPQ5qOPI+aGEU=----ATTACHMENT:----MTQ5NDkzMjc5Mjk2NzQ4MiA1MTc3MzI2Njg5NDMzMDEyIDk1NjIwOTk1NTg5MjQ2NTA=