Symfony\Component\DependencyInjection\ContainerBuilder::addClassResource PHP Method

addClassResource() public method

Adds the given class hierarchy as resources.
public addClassResource ( ReflectionClass $class ) : ContainerBuilder
$class ReflectionClass
return ContainerBuilder The current instance
    public function addClassResource(\ReflectionClass $class)
    {
        if (!$this->trackResources) {
            return $this;
        }

        do {
            if (is_file($class->getFileName())) {
                $this->addResource(new FileResource($class->getFileName()));
            }
        } while ($class = $class->getParentClass());

        return $this;
    }

Usage Example

 public function process(ContainerBuilder $container)
 {
     $this->parameterBag = $parameterBag = $container->getParameterBag();
     try {
         $preferredServices = (array) $parameterBag->resolveValue("%autowiring.preferred_services%");
     } catch (ParameterNotFoundException $exception) {
         $preferredServices = [];
     }
     try {
         $fastAnnotationChecksRegex = "/" . implode("|", array_map(function ($s) {
             return preg_quote($s);
         }, (array) $parameterBag->resolveValue("%autowiring.fast_annotation_checks%"))) . "/";
     } catch (ParameterNotFoundException $exception) {
         $fastAnnotationChecksRegex = null;
     }
     foreach ($container->getDefinitions() as $serviceId => $definition) {
         if ($this->canDefinitionBeAutowired($serviceId, $definition) === false) {
             continue;
         }
         try {
             $className = $parameterBag->resolveValue($definition->getClass());
             $reflectionClass = new ReflectionClass($className);
             $this->autowireClass($className, $reflectionClass, $definition, $fastAnnotationChecksRegex, $preferredServices, $parameterBag);
             // add files to cache
             $container->addClassResource($reflectionClass);
         } catch (AutowiringException $exception) {
             throw new AutowiringException(sprintf("%s (service: %s)", $exception->getMessage(), $serviceId), $exception->getCode(), $exception);
         }
     }
 }
All Usage Examples Of Symfony\Component\DependencyInjection\ContainerBuilder::addClassResource