<?php 
 
declare(strict_types=1); 
 
/* 
 * This file is part of the Sonata Project package. 
 * 
 * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
namespace Sonata\AdminBundle; 
 
use Sonata\AdminBundle\DependencyInjection\Compiler\AddAuditReadersCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\AddDependencyCallsCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\AddFilterTypeCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\AdminAddInitializeCallCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\AdminMakerCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\AdminSearchCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\ExtensionCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\GlobalVariablesCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\ModelManagerCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\ObjectAclManipulatorCompilerPass; 
use Sonata\AdminBundle\DependencyInjection\Compiler\TwigStringExtensionCompilerPass; 
use Symfony\Component\DependencyInjection\Compiler\PassConfig; 
use Symfony\Component\DependencyInjection\ContainerBuilder; 
use Symfony\Component\HttpKernel\Bundle\Bundle; 
 
final class SonataAdminBundle extends Bundle 
{ 
    public function build(ContainerBuilder $container): void 
    { 
        $container->addCompilerPass(new AddDependencyCallsCompilerPass()); 
        $container->addCompilerPass(new AddFilterTypeCompilerPass()); 
        $container->addCompilerPass(new AdminSearchCompilerPass()); 
        $container->addCompilerPass(new ExtensionCompilerPass()); 
        $container->addCompilerPass(new GlobalVariablesCompilerPass()); 
        $container->addCompilerPass(new ModelManagerCompilerPass()); 
        $container->addCompilerPass(new ObjectAclManipulatorCompilerPass()); 
        $container->addCompilerPass(new TwigStringExtensionCompilerPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 1); 
        $container->addCompilerPass(new AdminMakerCompilerPass()); 
        $container->addCompilerPass(new AddAuditReadersCompilerPass()); 
        $container->addCompilerPass(new AdminAddInitializeCallCompilerPass(), PassConfig::TYPE_BEFORE_REMOVING, -100); 
    } 
}