diff --git a/DependencyInjection/AdmingeneratorGeneratorExtension.php b/DependencyInjection/AdmingeneratorGeneratorExtension.php
index 91a43ac..741b718 100644
--- a/DependencyInjection/AdmingeneratorGeneratorExtension.php
+++ b/DependencyInjection/AdmingeneratorGeneratorExtension.php
@@ -9,9 +9,9 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\HttpKernel\DependencyInjection\Extension;
+use Symfony\Component\DependencyInjection\Extension\Extension;
use Symfony\Component\Yaml\Yaml;
use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
@@ -35,8 +35,8 @@ public function prepend(ContainerBuilder $container): void
public function load(array $configs, ContainerBuilder $container): void
{
- $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
- $loader->load('services.xml');
+ $loader = new PhpFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
+ $loader->load('services.php');
$config = $this->processConfiguration($this->getConfiguration($configs, $container), $configs);
@@ -107,11 +107,11 @@ private function processModelManagerConfiguration(array $config, ContainerBuilde
throw new ModelManagerNotSelectedException();
}
- $loader = new XmlFileLoader($container, new FileLocator(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Resources' . DIRECTORY_SEPARATOR . 'config'));
+ $loader = new PhpFileLoader($container, new FileLocator(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Resources' . DIRECTORY_SEPARATOR . 'config'));
$config['templates_dirs'][] = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Resources' . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . 'templates';
if ($config['use_doctrine_orm']) {
- $loader->load('doctrine_orm.xml');
+ $loader->load('doctrine_orm.php');
$this->addTemplatesInitialization($container->getDefinition('admingenerator.generator.doctrine'), $config['templates_dirs']);
if ($config['overwrite_if_exists']) {
$container
@@ -127,7 +127,7 @@ private function processModelManagerConfiguration(array $config, ContainerBuilde
}
if ($config['use_doctrine_odm']) {
- $loader->load('doctrine_odm.xml');
+ $loader->load('doctrine_odm.php');
$this->addTemplatesInitialization($container->getDefinition('admingenerator.generator.doctrine_odm'), $config['templates_dirs']);
if ($config['overwrite_if_exists']) {
$container
@@ -143,7 +143,7 @@ private function processModelManagerConfiguration(array $config, ContainerBuilde
}
if ($config['use_propel']) {
- $loader->load('propel.xml');
+ $loader->load('propel.php');
$this->addTemplatesInitialization($container->getDefinition('admingenerator.generator.propel'), $config['templates_dirs']);
if ($config['overwrite_if_exists']) {
$container
diff --git a/Resources/config/doctrine_odm.php b/Resources/config/doctrine_odm.php
new file mode 100644
index 0000000..692cd60
--- /dev/null
+++ b/Resources/config/doctrine_odm.php
@@ -0,0 +1,29 @@
+parameters()
+ ->set('admingenerator.doctrine_odm.class', DoctrineODMGenerator::class)
+ ->set('admingenerator.fieldguesser.doctrine_odm.class', DoctrineODMFieldGuesser::class)
+ ->set('admingenerator.queryfilter.doctrine_odm.class', DoctrineODMQueryFilter::class);
+
+ $services = $container->services();
+ $services->set('admingenerator.fieldguesser.doctrine_odm', param('admingenerator.fieldguesser.doctrine_odm.class'))
+ ->arg('$registry', service('doctrine'))
+ ->arg('$objectModel', 'document');
+
+ $services->set('admingenerator.generator.doctrine_odm', param('admingenerator.doctrine_odm.class'))
+ ->arg('$outputDir', param('kernel.cache_dir'))
+ ->call('setBundleConfig', [param('admingenerator')])
+ ->call('setFieldGuesser', [service('admingenerator.fieldguesser.doctrine_odm')])
+ ->call('setRouter', [service('router')])
+ ->call('setTwig', [service('twig')])
+ ->call('setKernel', [service('kernel')])
+ ->public();
+};
diff --git a/Resources/config/doctrine_odm.xml b/Resources/config/doctrine_odm.xml
deleted file mode 100644
index 349f455..0000000
--- a/Resources/config/doctrine_odm.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
- Admingenerator\GeneratorBundle\Generator\DoctrineODMGenerator
- Admingenerator\GeneratorBundle\Guesser\DoctrineODMFieldGuesser
- Admingenerator\GeneratorBundle\QueryFilter\DoctrineODMQueryFilter
-
-
-
-
-
-
- document
-
-
-
- %kernel.cache_dir%
-
- parameter('admingenerator')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Resources/config/doctrine_orm.php b/Resources/config/doctrine_orm.php
new file mode 100644
index 0000000..8032147
--- /dev/null
+++ b/Resources/config/doctrine_orm.php
@@ -0,0 +1,29 @@
+parameters()
+ ->set('admingenerator.doctrine.class', DoctrineGenerator::class)
+ ->set('admingenerator.fieldguesser.doctrine.class', DoctrineFieldGuesser::class)
+ ->set('admingenerator.queryfilter.doctrine.class', DoctrineQueryFilter::class);
+
+ $services = $container->services();
+ $services->set('admingenerator.fieldguesser.doctrine', param('admingenerator.fieldguesser.doctrine.class'))
+ ->arg('$registry', service('doctrine'))
+ ->arg('$objectModel', 'entity');
+
+ $services->set('admingenerator.generator.doctrine', param('admingenerator.doctrine.class'))
+ ->arg('$outputDir', param('kernel.cache_dir'))
+ ->call('setBundleConfig', [param('admingenerator')])
+ ->call('setFieldGuesser', [service('admingenerator.fieldguesser.doctrine')])
+ ->call('setRouter', [service('router')])
+ ->call('setTwig', [service('twig')])
+ ->call('setKernel', [service('kernel')])
+ ->public();
+};
\ No newline at end of file
diff --git a/Resources/config/doctrine_orm.xml b/Resources/config/doctrine_orm.xml
deleted file mode 100644
index 0c3212c..0000000
--- a/Resources/config/doctrine_orm.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
- Admingenerator\GeneratorBundle\Generator\DoctrineGenerator
- Admingenerator\GeneratorBundle\Guesser\DoctrineORMFieldGuesser
- Admingenerator\GeneratorBundle\QueryFilter\DoctrineQueryFilter
-
-
-
-
-
-
- entity
-
-
-
- %kernel.cache_dir%
-
- parameter('admingenerator')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Resources/config/propel.php b/Resources/config/propel.php
new file mode 100644
index 0000000..a41861f
--- /dev/null
+++ b/Resources/config/propel.php
@@ -0,0 +1,27 @@
+parameters()
+ ->set('admingenerator.propel.class', PropelGenerator::class)
+ ->set('admingenerator.fieldguesser.propel.class', PropelORMFieldGuesser::class)
+ ->set('admingenerator.queryfilter.propel.class', PropelQueryFilter::class);
+
+ $services = $container->services();
+ $services->set('admingenerator.fieldguesser.propel', param('admingenerator.fieldguesser.propel.class'));
+
+ $services->set('admingenerator.generator.propel', param('admingenerator.propel.class'))
+ ->arg('$outputDir', param('kernel.cache_dir'))
+ ->call('setBundleConfig', [param('admingenerator')])
+ ->call('setFieldGuesser', [service('admingenerator.fieldguesser.propel')])
+ ->call('setRouter', [service('router')])
+ ->call('setTwig', [service('twig')])
+ ->call('setKernel', [service('kernel')])
+ ->public();
+};
\ No newline at end of file
diff --git a/Resources/config/propel.xml b/Resources/config/propel.xml
deleted file mode 100644
index de16fd6..0000000
--- a/Resources/config/propel.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
- Admingenerator\GeneratorBundle\Generator\PropelGenerator
- Admingenerator\GeneratorBundle\Guesser\PropelORMFieldGuesser
- Admingenerator\GeneratorBundle\QueryFilter\PropelQueryFilter
-
-
-
-
-
-
-
-
- %kernel.cache_dir%
-
- parameter('admingenerator')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Resources/config/services.php b/Resources/config/services.php
new file mode 100644
index 0000000..872876a
--- /dev/null
+++ b/Resources/config/services.php
@@ -0,0 +1,101 @@
+parameters()
+ ->set('routing.loader.admingenerator.class', RoutingLoader::class)
+ ->set('routing.loader.admingenerator_nested.class', NestedRoutingLoader::class)
+ ->set('admingenerator.generator_cache_builder', GeneratorCacheBuilder::class)
+ ->set('admingenerator.cache_warmer.class', GeneratorCacheWarmer::class)
+ ->set('form.type_guesser.admingenerator.class', ValidatorTypeGuesser::class)
+ ->set('admingenerator.pagination.class', AdmingeneratorView::class)
+ ->set('admingenerator.base_admin_template', '@AdmingeneratorGenerator/base.html.twig')
+ ->set('admingenerator.overwrite_if_exists', false)
+ ->set('admingenerator.validator.model_class.class', ModelClassValidator::class)
+ ->set('admingenerator.validator.propel_model_class.class', PropelModelClassValidator::class);
+
+ $services = $container->services();
+ $configureTwigExtension = static fn(string $id, string $class) => $services->set($id, $class)->tag('twig.extension');
+ $configureTwigExtension('twig.extension.admingenerator.array', ArrayExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.classify', ClassifyExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.echo', EchoExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.extra_filter', ExtraFilterExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.twig_print', TwigPrintExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.php_print', PHPPrintExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.config', ConfigExtension::class)
+ ->arg('$bundleConfig', param('admingenerator'));
+ $configureTwigExtension('twig.extension.admingenerator.csrf', CsrfTokenExtension::class)
+ ->arg('$csrfTokenManager', service('security.csrf.token_manager'));
+ $configureTwigExtension('twig.extension.admingenerator.localized_money', LocalizedMoneyExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.extends', ExtendsAdmingeneratedExtension::class);
+ $configureTwigExtension('twig.extension.admingenerator.security', SecurityExtension::class)
+ ->arg('$authorizationChecker', AuthorizationCheckerInterface::class);
+
+ $services->set('admingenerator.generator.listener', ControllerListener::class)
+ ->tag('kernel.event_listener', ['event' => 'kernel.request', 'method' => 'onKernelRequest'])
+ ->arg('$container', service('service_container'))
+ ->arg('$twig', service('twig'));
+
+ $services->set('routing.loader.admingenerator', param('routing.loader.admingenerator.class'))
+ ->tag('routing.loader')
+ ->arg('$locator', service('file_locator'));
+
+ $services->set('routing.loader.admingenerator_nested', param('routing.loader.admingenerator_nested.class'))
+ ->tag('routing.loader')
+ ->arg('$locator', service('file_locator'));
+
+ $services->set('pagerfanta.view.admingenerator', param('admingenerator.pagination.class'))
+ ->tag('pagerfanta.view', ['alias' => 'admingenerator'])
+ ->arg('$translator', service('translator'));
+
+ $services->set('admingenerator.maker.make_admin', MakeAdmin::class)
+ ->tag('maker.command')
+ ->tag('container.no_preload');
+ $services->set('admingenerator.command.install-assets', AssetsInstallCommand::class)
+ ->tag('console.command', ['command' => 'admin:install-assets'])
+ ->arg('$projectDir', param('kernel.project_dir'));
+
+ $services->set('admingenerator.validator.model_class', param('admingenerator.validator.model_class.class'))
+ ->tag('admingenerator.validator', ['alias' => 'model_class']);
+
+ $services->set('admingenerator.validator.propel_model_class', param('admingenerator.validator.propel_model_class.class'))
+ ->tag('admingenerator.validator.propel', ['alias' => 'propel_model_class']);
+
+ $services->set('admingenerator.generator_cache_builder', param('admingenerator.generator_cache_builder'))
+ ->arg('$container', service('service_container'));
+
+ $services->set('admingenerator.cache_warmer', param('admingenerator.cache_warmer.class'))
+ ->tag('kernel.cache_warmer', ['priority' => 100])
+ ->arg('$generatorCacheBuilder', service('admingenerator.generator_cache_builder'));
+
+ $services->set('admingenerator.command.generate_base_classes', GenerateBaseClassesCommand::class)
+ ->tag('console.command', ['command' => 'admin:generate-base-classes'])
+ ->arg('$generatorCacheBuilder', service('admingenerator.generator_cache_builder'));
+};
\ No newline at end of file
diff --git a/Resources/config/services.xml b/Resources/config/services.xml
deleted file mode 100644
index f245854..0000000
--- a/Resources/config/services.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
-
-
- Admingenerator\GeneratorBundle\Routing\RoutingLoader
- Admingenerator\GeneratorBundle\Routing\NestedRoutingLoader
- Admingenerator\GeneratorBundle\CacheBuilder\GeneratorCacheBuilder
- Admingenerator\GeneratorBundle\CacheWarmer\GeneratorCacheWarmer
- Admingenerator\GeneratorBundle\Validator\ValidatorTypeGuesser
- Admingenerator\GeneratorBundle\Pagerfanta\View\AdmingeneratorView
- @AdmingeneratorGenerator/base.html.twig
- false
- Admingenerator\GeneratorBundle\Validator\ModelClassValidator
- Admingenerator\GeneratorBundle\Validator\PropelModelClassValidator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- parameter('admingenerator')
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %kernel.project_dir%
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/composer.json b/composer.json
index 0fd5824..d5bd8e4 100644
--- a/composer.json
+++ b/composer.json
@@ -24,28 +24,28 @@
"php": "^8.2",
"doctrine/common": "~2.2||~3.0",
"doctrine/inflector": "~1.4||~2.0",
- "symfony/cache": ">=5.4,<8.0",
+ "symfony/cache": "~5.4|~6.4|~7.4|~8.0",
"symfony/cache-contracts": "^1.0||^2.0||~3.0",
- "symfony/config": ">=5.4,<8.0",
- "symfony/console": ">=5.4,<8.0",
- "symfony/dependency-injection": ">=5.4,<8.0",
- "symfony/filesystem": ">=5.4,<8.0",
- "symfony/finder": ">=5.4,<8.0",
- "symfony/form": ">=5.4,<8.0",
- "symfony/framework-bundle": ">=5.4,<8.0",
- "symfony/http-foundation": ">=5.4,<8.0",
- "symfony/http-kernel": ">=5.4,<8.0",
- "symfony/options-resolver": ">=5.4,<8.0",
- "symfony/process": ">=5.4,<8.0",
- "symfony/routing": ">=5.4,<8.0",
- "symfony/security-csrf": ">=5.4,<8.0",
- "symfony/security-core": ">=5.4,<8.0",
- "symfony/translation": ">=5.4,<8.0",
- "symfony/twig-bundle": ">=5.4,<8.0",
- "symfony/validator": ">=5.4,<8.0",
- "symfony/yaml": ">=5.4,<8.0",
+ "symfony/config": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/console": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/dependency-injection": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/filesystem": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/finder": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/form": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/framework-bundle": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/http-foundation": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/http-kernel": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/options-resolver": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/process": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/routing": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/security-csrf": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/security-core": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/translation": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/twig-bundle": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/validator": "~5.4|~6.4|~7.4|~8.0",
+ "symfony/yaml": "~5.4|~6.4|~7.4|~8.0",
"symfony2admingenerator/twig-generator": "^2.0.3",
- "twig/twig": "^2.15.3||^3.4.3",
+ "twig/twig": "^3.4.3",
"babdev/pagerfanta-bundle": "~4.0",
"pagerfanta/pagerfanta": "~3.0||~4.0",
"psr/log": "~1.0||~2.0||~3.0"
@@ -54,6 +54,7 @@
"doctrine/dbal": ">=4.2.1",
"doctrine/orm": ">=2.20.1",
"symfony/maker-bundle": "~1.0",
+ "symfony/var-exporter": "~6.4|~7.4",
"phpunit/phpunit": ">=11.5.2"
},
"suggest": {