Skip to content

Commit 63964a7

Browse files
committed
Drop Symfony 4.4 and Twig 2
1 parent 2ba2aab commit 63964a7

20 files changed

Lines changed: 96 additions & 237 deletions

.github/workflows/test.yaml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,6 @@ jobs:
4848
dependencies: lowest
4949
allowed-to-fail: false
5050
variant: normal
51-
- php-version: '8.2'
52-
dependencies: highest
53-
allowed-to-fail: false
54-
symfony-require: 4.4.*
55-
variant: symfony/symfony:"4.4.*"
5651
- php-version: '8.2'
5752
dependencies: highest
5853
allowed-to-fail: false

composer.json

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@
2727
"doctrine/persistence": "^3.0.2",
2828
"sonata-project/doctrine-extensions": "^1.13 || ^2.0",
2929
"sonata-project/form-extensions": "^1.4",
30-
"symfony/config": "^4.4.11 || ^5.4 || ^6.2",
31-
"symfony/console": "^4.4 || ^5.4 || ^6.2",
32-
"symfony/dependency-injection": "^4.4 || ^5.4 || ^6.2",
33-
"symfony/form": "^4.4.12 || ^5.4 || ^6.2",
34-
"symfony/framework-bundle": "^4.4.6 || ^5.4 || ^6.2",
35-
"symfony/http-foundation": "^4.4 || ^5.4 || ^6.2",
36-
"symfony/http-kernel": "^4.4 || ^5.4 || ^6.2",
37-
"symfony/options-resolver": "^4.4 || ^5.4 || ^6.2",
38-
"symfony/routing": "^4.4 || ^5.4 || ^6.2",
39-
"symfony/translation": "^4.4 || ^5.4 || ^6.2",
40-
"symfony/validator": "^4.4 || ^5.4 || ^6.2",
41-
"twig/twig": "^2.14 || ^3.0"
30+
"symfony/config": "^5.4 || ^6.2",
31+
"symfony/console": "^5.4 || ^6.2",
32+
"symfony/dependency-injection": "^5.4 || ^6.2",
33+
"symfony/form": "^5.4 || ^6.2",
34+
"symfony/framework-bundle": "^5.4 || ^6.2",
35+
"symfony/http-foundation": "^5.4 || ^6.2",
36+
"symfony/http-kernel": "^5.4 || ^6.2",
37+
"symfony/options-resolver": "^5.4 || ^6.2",
38+
"symfony/routing": "^5.4 || ^6.2",
39+
"symfony/translation": "^5.4 || ^6.2",
40+
"symfony/validator": "^5.4 || ^6.2",
41+
"twig/twig": "^3.0"
4242
},
4343
"require-dev": {
4444
"dama/doctrine-test-bundle": "^7.0",
@@ -58,20 +58,20 @@
5858
"phpstan/phpstan-symfony": "^1.0",
5959
"phpunit/phpunit": "^9.5",
6060
"psalm/plugin-phpunit": "^0.18",
61-
"psalm/plugin-symfony": "^4.0 || ^5.0",
61+
"psalm/plugin-symfony": "^5.0",
6262
"rector/rector": "^0.15",
6363
"sonata-project/admin-bundle": "^4.14",
6464
"sonata-project/block-bundle": "^4.11",
6565
"sonata-project/doctrine-orm-admin-bundle": "^4.0",
66-
"symfony/asset": "^4.4 || ^5.4 || ^6.2",
67-
"symfony/browser-kit": "^4.4 || ^5.4 || ^6.2",
68-
"symfony/filesystem": "^4.4 || ^5.4 || ^6.2",
66+
"symfony/asset": "^5.4 || ^6.2",
67+
"symfony/browser-kit": "^5.4 || ^6.2",
68+
"symfony/filesystem": "^5.4 || ^6.2",
6969
"symfony/phpunit-bridge": "^6.2",
70-
"symfony/security-bundle": "^4.4 || ^5.4 || ^6.2",
71-
"symfony/security-csrf": "^4.4 || ^5.4 || ^6.2",
72-
"symfony/twig-bundle": "^4.4 || ^5.4 || ^6.2",
73-
"symfony/yaml": "^4.4 || ^5.4 || ^6.2",
74-
"vimeo/psalm": "^4.7.2 || ^5.0"
70+
"symfony/security-bundle": "^5.4 || ^6.2",
71+
"symfony/security-csrf": "^5.4 || ^6.2",
72+
"symfony/twig-bundle": "^5.4 || ^6.2",
73+
"symfony/yaml": "^5.4 || ^6.2",
74+
"vimeo/psalm": "^5.0"
7575
},
7676
"conflict": {
7777
"doctrine/mongodb-odm": "<2.4",

src/Command/FixContextCommand.php

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,6 @@
2626
#[AsCommand(name: 'sonata:classification:fix-context', description: 'Generate the default context if none defined and attach the context to all elements')]
2727
final class FixContextCommand extends Command
2828
{
29-
// TODO: Remove static properties when support for Symfony < 5.4 is dropped.
30-
protected static $defaultName = 'sonata:classification:fix-context';
31-
protected static $defaultDescription = 'Generate the default context if none defined and attach the context to all elements';
32-
3329
public function __construct(
3430
private ContextManagerInterface $contextManager,
3531
private TagManagerInterface $tagManager,
@@ -39,14 +35,6 @@ public function __construct(
3935
parent::__construct();
4036
}
4137

42-
public function configure(): void
43-
{
44-
\assert(null !== static::$defaultDescription);
45-
46-
// TODO: Remove setDescription when support for Symfony < 5.4 is dropped.
47-
$this->setDescription(static::$defaultDescription);
48-
}
49-
5038
public function execute(InputInterface $input, OutputInterface $output): int
5139
{
5240
$output->writeln('1. Checking default context');

src/Resources/config/admin.php

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,12 @@
1111
* file that was distributed with this source code.
1212
*/
1313

14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
1416
use Sonata\ClassificationBundle\Admin\Filter\CategoryFilter;
1517
use Sonata\ClassificationBundle\Admin\Filter\CollectionFilter;
16-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
17-
use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator;
1818

1919
return static function (ContainerConfigurator $containerConfigurator): void {
20-
// Use "service" function for creating references to services when dropping support for Symfony 4.4
21-
// Use "param" function for creating references to parameters when dropping support for Symfony 5.1
2220
$containerConfigurator->parameters()
2321

2422
->set('sonata.classification.admin.groupname', 'sonata_classification')
@@ -27,80 +25,80 @@
2725

2826
$containerConfigurator->services()
2927

30-
->set('sonata.classification.admin.category', '%sonata.classification.admin.category.class%')
28+
->set('sonata.classification.admin.category', (string) param('sonata.classification.admin.category.class'))
3129
->public()
3230
->tag('sonata.admin', [
33-
'model_class' => '%sonata.classification.admin.category.entity%',
34-
'controller' => '%sonata.classification.admin.category.controller%',
31+
'model_class' => (string) param('sonata.classification.admin.category.entity'),
32+
'controller' => (string) param('sonata.classification.admin.category.controller'),
3533
'manager_type' => 'orm',
36-
'group' => '%sonata.classification.admin.groupname%',
37-
'translation_domain' => '%sonata.classification.admin.category.translation_domain%',
34+
'group' => (string) param('sonata.classification.admin.groupname'),
35+
'translation_domain' => (string) param('sonata.classification.admin.category.translation_domain'),
3836
'label' => 'label_categories',
3937
'label_translator_strategy' => 'sonata.admin.label.strategy.underscore',
40-
'icon' => '%sonata.classification.admin.groupicon%',
38+
'icon' => (string) param('sonata.classification.admin.groupicon'),
4139
])
4240
->args([
43-
new ReferenceConfigurator('sonata.classification.manager.context'),
41+
service('sonata.classification.manager.context'),
4442
])
4543
->call('setTemplates', [[
4644
'list' => '@SonataClassification/CategoryAdmin/list.html.twig',
4745
'tree' => '@SonataClassification/CategoryAdmin/tree.html.twig',
4846
]])
4947

50-
->set('sonata.classification.admin.tag', '%sonata.classification.admin.tag.class%')
48+
->set('sonata.classification.admin.tag', (string) param('sonata.classification.admin.tag.class'))
5149
->public()
5250
->tag('sonata.admin', [
53-
'model_class' => '%sonata.classification.admin.tag.entity%',
54-
'controller' => '%sonata.classification.admin.tag.controller%',
51+
'model_class' => (string) param('sonata.classification.admin.tag.entity'),
52+
'controller' => (string) param('sonata.classification.admin.tag.controller'),
5553
'manager_type' => 'orm',
56-
'group' => '%sonata.classification.admin.groupname%',
57-
'translation_domain' => '%sonata.classification.admin.tag.translation_domain%',
54+
'group' => (string) param('sonata.classification.admin.groupname'),
55+
'translation_domain' => (string) param('sonata.classification.admin.tag.translation_domain'),
5856
'label' => 'label_tags',
5957
'label_translator_strategy' => 'sonata.admin.label.strategy.underscore',
60-
'icon' => '%sonata.classification.admin.groupicon%',
58+
'icon' => (string) param('sonata.classification.admin.groupicon'),
6159
])
6260
->args([
63-
new ReferenceConfigurator('sonata.classification.manager.context'),
61+
service('sonata.classification.manager.context'),
6462
])
6563

66-
->set('sonata.classification.admin.collection', '%sonata.classification.admin.collection.class%')
64+
->set('sonata.classification.admin.collection', (string) param('sonata.classification.admin.collection.class'))
6765
->public()
6866
->tag('sonata.admin', [
69-
'model_class' => '%sonata.classification.admin.collection.entity%',
70-
'controller' => '%sonata.classification.admin.collection.controller%',
67+
'model_class' => (string) param('sonata.classification.admin.collection.entity'),
68+
'controller' => (string) param('sonata.classification.admin.collection.controller'),
7169
'manager_type' => 'orm',
72-
'group' => '%sonata.classification.admin.groupname%',
73-
'translation_domain' => '%sonata.classification.admin.collection.translation_domain%',
70+
'group' => (string) param('sonata.classification.admin.groupname'),
71+
'translation_domain' => (string) param('sonata.classification.admin.collection.translation_domain'),
7472
'label' => 'label_collections',
7573
'label_translator_strategy' => 'sonata.admin.label.strategy.underscore',
76-
'icon' => '%sonata.classification.admin.groupicon%',
74+
'icon' => (string) param('sonata.classification.admin.groupicon'),
7775
])
7876
->args([
79-
new ReferenceConfigurator('sonata.classification.manager.context'),
77+
service('sonata.classification.manager.context'),
8078
])
8179

82-
->set('sonata.classification.admin.context', '%sonata.classification.admin.context.class%')
80+
->set('sonata.classification.admin.context', (string) param('sonata.classification.admin.context.class'))
8381
->public()
8482
->tag('sonata.admin', [
85-
'model_class' => '%sonata.classification.admin.context.entity%',
86-
'controller' => '%sonata.classification.admin.context.controller%',
83+
'model_class' => (string) param('sonata.classification.admin.context.entity'),
84+
'controller' => (string) param('sonata.classification.admin.context.controller'),
8785
'manager_type' => 'orm',
88-
'group' => '%sonata.classification.admin.groupname%',
89-
'translation_domain' => '%sonata.classification.admin.context.translation_domain%',
86+
'group' => (string) param('sonata.classification.admin.groupname'),
87+
'translation_domain' => (string) param('sonata.classification.admin.context.translation_domain'),
9088
'label' => 'label_contexts',
9189
'label_translator_strategy' => 'sonata.admin.label.strategy.underscore',
92-
'icon' => '%sonata.classification.admin.groupicon%',
90+
'icon' => (string) param('sonata.classification.admin.groupicon'),
9391
])
9492

9593
->set(CategoryFilter::class)
9694
->tag('sonata.admin.filter.type')
9795
->args([
98-
new ReferenceConfigurator('sonata.classification.manager.category'),
96+
service('sonata.classification.manager.category'),
9997
])
10098

10199
->set(CollectionFilter::class)
102100
->tag('sonata.admin.filter.type')
103101
->args([
104-
new ReferenceConfigurator('sonata.classification.manager.collection'),
102+
service('sonata.classification.manager.collection'),
105103
]);
106104
};

src/Resources/config/command.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,20 @@
1111
* file that was distributed with this source code.
1212
*/
1313

14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
1416
use Sonata\ClassificationBundle\Command\FixContextCommand;
15-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
16-
use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator;
1717

1818
return static function (ContainerConfigurator $containerConfigurator): void {
19-
// Use "service" function for creating references to services when dropping support for Symfony 4.4
20-
// Use "param" function for creating references to parameters when dropping support for Symfony 5.1
2119
$containerConfigurator->services()
2220

2321
->set(FixContextCommand::class)
2422
->public()
2523
->tag('console.command')
2624
->args([
27-
new ReferenceConfigurator('sonata.classification.manager.context'),
28-
new ReferenceConfigurator('sonata.classification.manager.tag'),
29-
new ReferenceConfigurator('sonata.classification.manager.collection'),
30-
new ReferenceConfigurator('sonata.classification.manager.category'),
25+
service('sonata.classification.manager.context'),
26+
service('sonata.classification.manager.tag'),
27+
service('sonata.classification.manager.collection'),
28+
service('sonata.classification.manager.category'),
3129
]);
3230
};

src/Resources/config/controllers.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,18 @@
1111
* file that was distributed with this source code.
1212
*/
1313

14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
1416
use Psr\Container\ContainerInterface;
1517
use Sonata\ClassificationBundle\Controller\CategoryAdminController;
16-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
17-
use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator;
1818

1919
return static function (ContainerConfigurator $containerConfigurator): void {
20-
// Use "service" function for creating references to services when dropping support for Symfony 4.4
21-
// Use "param" function for creating references to parameters when dropping support for Symfony 5.1
2220
$containerConfigurator->services()
2321

2422
->set('sonata.classification.controller.category_admin', CategoryAdminController::class)
2523
->public()
2624
->tag('container.service_subscriber')
2725
->call('setContainer', [
28-
new ReferenceConfigurator(ContainerInterface::class),
26+
service(ContainerInterface::class),
2927
]);
3028
};

src/Resources/config/form.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@
1111
* file that was distributed with this source code.
1212
*/
1313

14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
1416
use Sonata\ClassificationBundle\Form\Type\CategorySelectorType;
15-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
16-
use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator;
1717

1818
return static function (ContainerConfigurator $containerConfigurator): void {
19-
// Use "service" function for creating references to services when dropping support for Symfony 4.4
20-
// Use "param" function for creating references to parameters when dropping support for Symfony 5.1
2119
$containerConfigurator->services()
2220

2321
->set('sonata.classification.form.type.category_selector', CategorySelectorType::class)
@@ -26,6 +24,6 @@
2624
'alias' => 'sonata_category_selector',
2725
])
2826
->args([
29-
new ReferenceConfigurator('sonata.classification.manager.category'),
27+
service('sonata.classification.manager.category'),
3028
]);
3129
};

src/Resources/config/orm.php

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
* file that was distributed with this source code.
1212
*/
1313

14+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
15+
1416
use Sonata\ClassificationBundle\Entity\CategoryManager;
1517
use Sonata\ClassificationBundle\Entity\CollectionManager;
1618
use Sonata\ClassificationBundle\Entity\ContextManager;
@@ -19,12 +21,8 @@
1921
use Sonata\ClassificationBundle\Model\CollectionManagerInterface;
2022
use Sonata\ClassificationBundle\Model\ContextManagerInterface;
2123
use Sonata\ClassificationBundle\Model\TagManagerInterface;
22-
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
23-
use Symfony\Component\DependencyInjection\Loader\Configurator\ReferenceConfigurator;
2424

2525
return static function (ContainerConfigurator $containerConfigurator): void {
26-
// Use "service" function for creating references to services when dropping support for Symfony 4.4
27-
// Use "param" function for creating references to parameters when dropping support for Symfony 5.1
2826
$containerConfigurator->parameters()
2927

3028
->set('sonata.classification.manager.category.class', CategoryManager::class)
@@ -37,33 +35,33 @@
3735

3836
$containerConfigurator->services()
3937

40-
->set('sonata.classification.manager.category', '%sonata.classification.manager.category.class%')
38+
->set('sonata.classification.manager.category', (string) param('sonata.classification.manager.category.class'))
4139
->public()
4240
->args([
43-
'%sonata.classification.manager.category.entity%',
44-
new ReferenceConfigurator('doctrine'),
45-
new ReferenceConfigurator('sonata.classification.manager.context'),
41+
param('sonata.classification.manager.category.entity'),
42+
service('doctrine'),
43+
service('sonata.classification.manager.context'),
4644
])
4745

48-
->set('sonata.classification.manager.tag', '%sonata.classification.manager.tag.class%')
46+
->set('sonata.classification.manager.tag', (string) param('sonata.classification.manager.tag.class'))
4947
->public()
5048
->args([
51-
'%sonata.classification.manager.tag.entity%',
52-
new ReferenceConfigurator('doctrine'),
49+
param('sonata.classification.manager.tag.entity'),
50+
service('doctrine'),
5351
])
5452

55-
->set('sonata.classification.manager.collection', '%sonata.classification.manager.collection.class%')
53+
->set('sonata.classification.manager.collection', (string) param('sonata.classification.manager.collection.class'))
5654
->public()
5755
->args([
58-
'%sonata.classification.manager.collection.entity%',
59-
new ReferenceConfigurator('doctrine'),
56+
param('sonata.classification.manager.collection.entity'),
57+
service('doctrine'),
6058
])
6159

62-
->set('sonata.classification.manager.context', '%sonata.classification.manager.context.class%')
60+
->set('sonata.classification.manager.context', (string) param('sonata.classification.manager.context.class'))
6361
->public()
6462
->args([
65-
'%sonata.classification.manager.context.entity%',
66-
new ReferenceConfigurator('doctrine'),
63+
param('sonata.classification.manager.context.entity'),
64+
service('doctrine'),
6765
])
6866

6967
->alias(CategoryManagerInterface::class, 'sonata.classification.manager.category')

0 commit comments

Comments
 (0)