403 lines
18 KiB
PHP
403 lines
18 KiB
PHP
<?php
|
|
|
|
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
|
|
|
|
use EasyCorp\Bundle\EasyAdminBundle\ArgumentResolver\AdminContextResolver;
|
|
use EasyCorp\Bundle\EasyAdminBundle\ArgumentResolver\BatchActionDtoResolver;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Asset\AssetPackage;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Cache\CacheWarmer;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Command\MakeAdminDashboardCommand;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Command\MakeCrudControllerCommand;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Contracts\Field\FieldConfiguratorInterface;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Contracts\Filter\FilterConfiguratorInterface;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Contracts\Menu\MenuItemMatcherInterface;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Contracts\Orm\EntityPaginatorInterface;
|
|
use EasyCorp\Bundle\EasyAdminBundle\DependencyInjection\EasyAdminExtension;
|
|
use EasyCorp\Bundle\EasyAdminBundle\EventListener\AdminRouterSubscriber;
|
|
use EasyCorp\Bundle\EasyAdminBundle\EventListener\CrudResponseListener;
|
|
use EasyCorp\Bundle\EasyAdminBundle\EventListener\ExceptionListener;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\ActionFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\AdminContextFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\ControllerFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\EntityFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\FieldFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\FilterFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\FormFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\FormLayoutFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\MenuFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Factory\PaginatorFactory;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\ArrayConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\AssociationConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\AvatarConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\BooleanConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\ChoiceConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\CollectionConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\CommonPostConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\CommonPreConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\CountryConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\CurrencyConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\DateTimeConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\EmailConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\FormConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\IdConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\ImageConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\IntegerConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\LanguageConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\LocaleConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\MoneyConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\NumberConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\PercentConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\SlugConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\TelephoneConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\TextConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\TimezoneConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Field\Configurator\UrlConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\ChoiceConfigurator as ChoiceFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\CommonConfigurator as CommonFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\ComparisonConfigurator as ComparisonFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\DateTimeConfigurator as DateTimeFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\EntityConfigurator as EntityFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\NullConfigurator as NullFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\NumericConfigurator as NumericFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Filter\Configurator\TextConfigurator as TextFilterConfigurator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Form\Extension\CollectionTypeExtension;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Form\Extension\EaCrudFormTypeExtension;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Form\Type\CrudFormType;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Form\Type\FiltersFormType;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Inspector\DataCollector;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Intl\IntlFormatter;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Maker\ClassMaker;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Menu\MenuItemMatcher;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Orm\EntityPaginator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Orm\EntityRepository;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Orm\EntityUpdater;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Provider\AdminContextProvider;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Provider\FieldProvider;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Registry\CrudControllerRegistry;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Registry\DashboardControllerRegistry;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminRouteGenerator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminRouteLoader;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Router\UrlSigner;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Security\AuthorizationChecker;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Security\SecurityVoter;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Twig\Component\Icon;
|
|
use EasyCorp\Bundle\EasyAdminBundle\Twig\EasyAdminTwigExtension;
|
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
|
use Symfony\Component\DependencyInjection\Reference;
|
|
use Symfony\Component\DependencyInjection\ServiceLocator;
|
|
use Symfony\Component\HttpKernel\Event\ViewEvent;
|
|
use Symfony\Component\HttpKernel\KernelInterface;
|
|
|
|
return static function (ContainerConfigurator $container) {
|
|
$services = $container->services()
|
|
->defaults()->private()
|
|
->instanceof(FieldConfiguratorInterface::class)->tag(EasyAdminExtension::TAG_FIELD_CONFIGURATOR)
|
|
->instanceof(FilterConfiguratorInterface::class)->tag(EasyAdminExtension::TAG_FILTER_CONFIGURATOR);
|
|
|
|
$services
|
|
->set(MakeAdminDashboardCommand::class)->public()
|
|
->arg(0, service(ClassMaker::class))
|
|
->arg(1, param('kernel.project_dir'))
|
|
->tag('console.command')
|
|
|
|
->set(MakeCrudControllerCommand::class)->public()
|
|
->arg(0, param('kernel.project_dir'))
|
|
->arg(1, service(ClassMaker::class))
|
|
->arg(2, service('doctrine'))
|
|
->tag('console.command')
|
|
|
|
->set(ClassMaker::class)
|
|
->arg(0, service(KernelInterface::class))
|
|
->arg(1, param('kernel.project_dir'))
|
|
|
|
->set(CacheWarmer::class)
|
|
->arg(0, service('router'))
|
|
->tag('kernel.cache_warmer')
|
|
|
|
->set(DataCollector::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->tag('data_collector', ['id' => 'easyadmin', 'template' => '@EasyAdmin/inspector/data_collector.html.twig'])
|
|
|
|
->set(ExceptionListener::class)
|
|
->arg(0, '%kernel.debug%')
|
|
->arg(1, service(AdminContextProvider::class))
|
|
->arg(2, service('twig'))
|
|
->tag('kernel.event_listener', ['event' => 'kernel.exception', 'priority' => -64])
|
|
|
|
->set(EasyAdminTwigExtension::class)
|
|
// I don't know if we truly need the locator to get a new instance of the
|
|
// service whenever we generate a new URL, Maybe it's enough with the route parameter
|
|
// initialization done after generating each URL
|
|
->arg(0, service('service_locator_'.AdminUrlGenerator::class))
|
|
->arg(1, service(AdminContextProvider::class))
|
|
->arg(2, new Reference('security.csrf.token_manager', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
->arg(3, new Reference('asset_mapper.importmap.renderer', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
->arg(4, service('translator'))
|
|
->arg(5, new Reference('.ux_icons.twig_icon_runtime', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
->tag('twig.extension')
|
|
|
|
->set(EaCrudFormTypeExtension::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->tag('form.type_extension')
|
|
|
|
->set(CollectionTypeExtension::class)
|
|
->tag('form.type_extension')
|
|
|
|
->set(AuthorizationChecker::class)
|
|
->arg(0, new Reference('security.authorization_checker', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
|
|
->set(IntlFormatter::class)
|
|
|
|
->set(AdminContextProvider::class)
|
|
->arg(0, service('request_stack'))
|
|
|
|
->set(AdminContextResolver::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->tag('controller.argument_value_resolver')
|
|
|
|
->set(BatchActionDtoResolver::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service(AdminUrlGenerator::class))
|
|
->tag('controller.argument_value_resolver')
|
|
|
|
->set(AdminRouterSubscriber::class)
|
|
->arg(0, service(AdminContextFactory::class))
|
|
->arg(1, service(ControllerFactory::class))
|
|
->arg(2, service('controller_resolver'))
|
|
->arg(3, service('router'))
|
|
->arg(4, service('router'))
|
|
->arg(5, service('cache.easyadmin'))
|
|
->tag('kernel.event_subscriber')
|
|
|
|
->set(ControllerFactory::class)
|
|
->arg(0, service('controller_resolver'))
|
|
|
|
->set(CrudResponseListener::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service('twig'))
|
|
->tag('kernel.event_listener', ['event' => ViewEvent::class])
|
|
|
|
->set(AdminContextFactory::class)
|
|
->arg(0, '%kernel.build_dir%')
|
|
->arg(1, new Reference('security.token_storage', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
->arg(2, new Reference(MenuFactory::class))
|
|
->arg(3, new Reference(CrudControllerRegistry::class))
|
|
->arg(4, new Reference(EntityFactory::class))
|
|
->arg(5, service(AdminRouteGenerator::class))
|
|
|
|
->set(AdminUrlGenerator::class)
|
|
// I don't know if we truly need the share() method to get a new instance of the
|
|
// service whenever we generate a new URL. Maybe it's enough with the route parameter
|
|
// initialization done after generating each URL
|
|
->share(false)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service('router'))
|
|
->arg(2, service(DashboardControllerRegistry::class))
|
|
->arg(3, service(AdminRouteGenerator::class))
|
|
|
|
->set('service_locator_'.AdminUrlGenerator::class, ServiceLocator::class)
|
|
->args([[AdminUrlGenerator::class => service(AdminUrlGenerator::class)]])
|
|
->tag('container.service_locator')
|
|
|
|
->set('cache.easyadmin')
|
|
->parent('cache.system')
|
|
->tag('cache.pool')
|
|
|
|
->set(AdminRouteGenerator::class)
|
|
->arg(0, tagged_iterator(EasyAdminExtension::TAG_DASHBOARD_CONTROLLER))
|
|
->arg(1, tagged_iterator(EasyAdminExtension::TAG_CRUD_CONTROLLER))
|
|
->arg(2, service('cache.easyadmin'))
|
|
|
|
->set(AdminRouteLoader::class)
|
|
->arg(0, service(AdminRouteGenerator::class))
|
|
->tag('routing.loader', ['type' => AdminRouteLoader::ROUTE_LOADER_TYPE])
|
|
|
|
->set(UrlSigner::class)
|
|
->arg(0, '%kernel.secret%')
|
|
|
|
->set(MenuFactory::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service(AuthorizationChecker::class))
|
|
->arg(2, service('security.logout_url_generator'))
|
|
->arg(3, service(AdminUrlGenerator::class))
|
|
->arg(4, service(MenuItemMatcherInterface::class))
|
|
|
|
->set(MenuItemMatcher::class)
|
|
|
|
->alias(MenuItemMatcherInterface::class, MenuItemMatcher::class)
|
|
|
|
->set(EntityRepository::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service('doctrine'))
|
|
->arg(2, service(EntityFactory::class))
|
|
->arg(3, service(FormFactory::class))
|
|
->arg(4, service('event_dispatcher'))
|
|
|
|
->set(EntityFactory::class)
|
|
->arg(0, service(FieldFactory::class))
|
|
->arg(1, service(ActionFactory::class))
|
|
->arg(2, service(AuthorizationChecker::class))
|
|
->arg(3, service('doctrine'))
|
|
->arg(4, service('event_dispatcher'))
|
|
|
|
->set(EntityPaginator::class)
|
|
->arg(0, service(AdminUrlGenerator::class))
|
|
->arg(1, service(EntityFactory::class))
|
|
->arg(2, service('request_stack'))
|
|
|
|
->alias(EntityPaginatorInterface::class, EntityPaginator::class)
|
|
|
|
->set(EntityUpdater::class)
|
|
->arg(0, service('property_accessor'))
|
|
->arg(1, service('validator'))
|
|
|
|
->set(PaginatorFactory::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service(EntityPaginatorInterface::class))
|
|
|
|
->set(FormFactory::class)
|
|
->arg(0, service('form.factory'))
|
|
->arg(1, service(AdminUrlGenerator::class))
|
|
|
|
->set(FormLayoutFactory::class)
|
|
|
|
->set(FieldFactory::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, service(AuthorizationChecker::class))
|
|
->arg(2, tagged_iterator(EasyAdminExtension::TAG_FIELD_CONFIGURATOR))
|
|
->arg(3, service(FormLayoutFactory::class))
|
|
|
|
->set(FieldProvider::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
|
|
->set(FilterFactory::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, tagged_iterator(EasyAdminExtension::TAG_FILTER_CONFIGURATOR))
|
|
|
|
->set(FiltersFormType::class)
|
|
->tag('form.type', ['alias' => 'ea_filters'])
|
|
|
|
->set(FileUploadType::class)
|
|
->arg(0, param('kernel.project_dir'))
|
|
->tag('form.type')
|
|
|
|
->set(ChoiceFilterConfigurator::class)
|
|
|
|
->set(CommonFilterConfigurator::class)
|
|
->tag(EasyAdminExtension::TAG_FILTER_CONFIGURATOR, ['priority' => 9999])
|
|
|
|
->set(ComparisonFilterConfigurator::class)
|
|
|
|
->set(DateTimeFilterConfigurator::class)
|
|
|
|
->set(EntityFilterConfigurator::class)
|
|
|
|
->set(NullFilterConfigurator::class)
|
|
|
|
->set(NumericFilterConfigurator::class)
|
|
|
|
->set(TextFilterConfigurator::class)
|
|
|
|
->set(ActionFactory::class)
|
|
->arg(0, new Reference(AdminContextProvider::class))
|
|
->arg(1, new Reference(AuthorizationChecker::class))
|
|
->arg(2, new Reference(AdminUrlGenerator::class))
|
|
->arg(3, new Reference('security.csrf.token_manager', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
|
|
->set(SecurityVoter::class)
|
|
->arg(0, service(AuthorizationChecker::class))
|
|
->arg(1, service(AdminContextProvider::class))
|
|
->tag('security.voter')
|
|
|
|
->set(CrudFormType::class)
|
|
->arg(0, service('form.type_guesser.doctrine'))
|
|
->tag('form.type', ['alias' => 'ea_crud'])
|
|
|
|
->set(ArrayConfigurator::class)
|
|
|
|
->set(AssociationConfigurator::class)
|
|
->arg(0, new Reference(EntityFactory::class))
|
|
->arg(1, new Reference(AdminUrlGenerator::class))
|
|
->arg(2, service('request_stack'))
|
|
->arg(3, service(ControllerFactory::class))
|
|
|
|
->set(AvatarConfigurator::class)
|
|
|
|
->set(BooleanConfigurator::class)
|
|
->arg(0, service(AdminUrlGenerator::class))
|
|
->arg(1, new Reference('security.csrf.token_manager', ContainerInterface::NULL_ON_INVALID_REFERENCE))
|
|
|
|
->set(CollectionConfigurator::class)
|
|
|
|
->set(CommonPostConfigurator::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->arg(1, '%kernel.charset%')
|
|
->tag(EasyAdminExtension::TAG_FIELD_CONFIGURATOR, ['priority' => -9999])
|
|
|
|
->set(CommonPreConfigurator::class)
|
|
->arg(0, new Reference('property_accessor'))
|
|
->arg(1, service(EntityFactory::class))
|
|
->tag(EasyAdminExtension::TAG_FIELD_CONFIGURATOR, ['priority' => 9999])
|
|
|
|
->set(CountryConfigurator::class)
|
|
->arg(0, service(AssetPackage::class))
|
|
|
|
->set(CurrencyConfigurator::class)
|
|
|
|
->set(DateTimeConfigurator::class)
|
|
->arg(0, service(IntlFormatter::class))
|
|
|
|
->set(EmailConfigurator::class)
|
|
|
|
->set(FormConfigurator::class)
|
|
|
|
->set(IdConfigurator::class)
|
|
|
|
->set(ImageConfigurator::class)
|
|
->arg(0, param('kernel.project_dir'))
|
|
|
|
->set(IntegerConfigurator::class)
|
|
|
|
->set(LanguageConfigurator::class)
|
|
|
|
->set(LocaleConfigurator::class)
|
|
|
|
->set(MoneyConfigurator::class)
|
|
->arg(0, service(IntlFormatter::class))
|
|
->arg(1, service('property_accessor'))
|
|
|
|
->set(NumberConfigurator::class)
|
|
->arg(0, service(IntlFormatter::class))
|
|
|
|
->set(PercentConfigurator::class)
|
|
->arg(0, service(IntlFormatter::class))
|
|
|
|
->set(ChoiceConfigurator::class)
|
|
|
|
->set(CollectionConfigurator::class)
|
|
->arg(0, service('request_stack'))
|
|
->arg(1, service(EntityFactory::class))
|
|
->arg(2, service(ControllerFactory::class))
|
|
|
|
->set(SlugConfigurator::class)
|
|
|
|
->set(TelephoneConfigurator::class)
|
|
|
|
->set(TextConfigurator::class)
|
|
|
|
->set(TimezoneConfigurator::class)
|
|
|
|
->set(UrlConfigurator::class)
|
|
|
|
->set(AssetPackage::class)
|
|
->arg(0, service('request_stack'))
|
|
->tag('assets.package', ['package' => AssetPackage::PACKAGE_NAME])
|
|
|
|
->set(Icon::class)
|
|
->arg(0, service(AdminContextProvider::class))
|
|
->tag('twig.component')
|
|
;
|
|
};
|