PHP 8.2.30
Preview: CheckExceptionOnInvalidReferenceBehaviorPass.php Size: 2.05 KB
//opt/cloudlinux/alt-php54/root/usr/share/pear/Symfony/Component/DependencyInjection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php

<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\DependencyInjection\Compiler;

use Symfony\Component\DependencyInjection\Definition;

use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Reference;
use Symfony\Component\DependencyInjection\ContainerBuilder;

/**
 * Checks that all references are pointing to a valid service.
 *
 * @author Johannes M. Schmitt <schmittjoh@gmail.com>
 */
class CheckExceptionOnInvalidReferenceBehaviorPass implements CompilerPassInterface
{
    private $container;
    private $sourceId;

    public function process(ContainerBuilder $container)
    {
        $this->container = $container;

        foreach ($container->getDefinitions() as $id => $definition) {
            $this->sourceId = $id;
            $this->processDefinition($definition);
        }
    }

    private function processDefinition(Definition $definition)
    {
        $this->processReferences($definition->getArguments());
        $this->processReferences($definition->getMethodCalls());
        $this->processReferences($definition->getProperties());
    }

    private function processReferences(array $arguments)
    {
        foreach ($arguments as $argument) {
            if (is_array($argument)) {
                $this->processReferences($argument);
            } elseif ($argument instanceof Definition) {
                $this->processDefinition($argument);
            } elseif ($argument instanceof Reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE === $argument->getInvalidBehavior()) {
                $destId = (string) $argument;

                if (!$this->container->has($destId)) {
                    throw new ServiceNotFoundException($destId, $this->sourceId);
                }
            }
        }
    }
}

Directory Contents

Dirs: 0 × Files: 24

Name Size Perms Modified Actions
4.41 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.36 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
3.60 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.05 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
5.50 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.55 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
746 B lrw-r--r-- 2019-12-18 11:22:56
Edit Download
4.48 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
1.43 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
1.84 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
5.90 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
1.04 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
1.24 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.71 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
691 B lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.03 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
4.07 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
5.42 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
3.42 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.11 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.83 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.79 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
1.48 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download
2.49 KB lrw-r--r-- 2019-12-18 11:22:56
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).