관리-도구
편집 파일: JoseFrameworkBundle.php
<?php declare(strict_types=1); /* * The MIT License (MIT) * * Copyright (c) 2014-2020 Spomky-Labs * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file for details. */ namespace Jose\Bundle\JoseFramework; use Jose\Bundle\JoseFramework\DependencyInjection\Compiler\EventDispatcherAliasCompilerPass; use Jose\Bundle\JoseFramework\DependencyInjection\Compiler\SymfonySerializerCompilerPass; use Jose\Bundle\JoseFramework\DependencyInjection\JoseFrameworkExtension; use Jose\Bundle\JoseFramework\DependencyInjection\Source; use Symfony\Component\DependencyInjection\Compiler\PassConfig; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\ExtensionInterface; use Symfony\Component\HttpKernel\Bundle\Bundle; final class JoseFrameworkBundle extends Bundle { /** * @var Source\Source[] */ private $sources = []; public function __construct() { foreach ($this->getSources() as $source) { $this->sources[$source->name()] = $source; } } public function getContainerExtension(): ExtensionInterface { return new JoseFrameworkExtension('jose', $this->sources); } public function build(ContainerBuilder $container): void { parent::build($container); foreach ($this->sources as $source) { if ($source instanceof Source\SourceWithCompilerPasses) { $compilerPasses = $source->getCompilerPasses(); foreach ($compilerPasses as $compilerPass) { $container->addCompilerPass($compilerPass); } } } $container->addCompilerPass(new EventDispatcherAliasCompilerPass()); $container->addCompilerPass(new SymfonySerializerCompilerPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 10); } /** * @return Source\Source[] */ private function getSources(): iterable { return [ new Source\Core\CoreSource(), new Source\Checker\CheckerSource(), new Source\Console\ConsoleSource(), new Source\Signature\SignatureSource(), new Source\Encryption\EncryptionSource(), new Source\NestedToken\NestedToken(), new Source\KeyManagement\KeyManagementSource(), ]; } }