Skip to content

Commit 0325f73

Browse files
authored
Switch from XML to PHP-based service configuration (#12)
XML-based service configuration has been deprecated since symfony/symfony#60568 and will no longer be supported in Symfony 8.0. See also https://symfony.com/blog/new-in-symfony-7-4-deprecated-xml-configuration.
1 parent 3205305 commit 0325f73

File tree

4 files changed

+61
-68
lines changed

4 files changed

+61
-68
lines changed

composer.json

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,29 @@
11
{
22
"name": "webfactory/object-routing-bundle",
3-
43
"description": "Support for webfactory/object-routing in Symfony projects (started as a fork of benjam1/object-routing-bundle)",
5-
64
"keywords": ["annotations", "routing"],
7-
85
"type": "symfony-bundle",
9-
106
"license": "Apache-2.0",
11-
127
"authors": [
138
{
149
"name": "webfactory GmbH",
1510
"email": "info@webfactory.de"
1611
}
1712
],
18-
1913
"replace": {
2014
"benjam1/object-routing-bundle": "<= 1.0.0"
2115
},
22-
2316
"require": {
2417
"php": "^8.1",
25-
"symfony/config": "^5.0|^6.0|^7.0",
26-
"symfony/dependency-injection": "^5.0|^6.0|^7.0",
27-
"symfony/http-kernel": "^5.0|^6.0|^7.0",
18+
"symfony/config": "^6.4|^7.0",
19+
"symfony/dependency-injection": "^6.4|^7.0",
20+
"symfony/http-kernel": "^6.4|^7.0",
2821
"webfactory/object-routing": "^1.7|^2.0",
2922
"jms/metadata": "^2.6"
3023
},
31-
24+
"require-dev": {
25+
"twig/twig": "^2.0|^3.0"
26+
},
3227
"autoload": {
3328
"psr-4": {
3429
"BG\\ObjectRoutingBundle\\": "src"

src/DependencyInjection/BGObjectRoutingExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public function load(array $configs, ContainerBuilder $container): void
1717
$configuration = new Configuration();
1818
$config = $this->processConfiguration($configuration, $configs);
1919

20-
$loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
21-
$loader->load('services.xml');
20+
$loader = new Loader\PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
21+
$loader->load('services.php');
2222

2323
$cacheDir = $container->getParameterBag()->resolveValue($config['cache_dir']);
2424
if (!is_dir($cacheDir)) {

src/Resources/config/services.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
return static function(ContainerConfigurator $container) {
6+
$services = $container->services();
7+
$parameters = $container->parameters();
8+
9+
$services->defaults()
10+
->private()
11+
->autowire()
12+
->autoconfigure();
13+
14+
$services->alias(\JMS\ObjectRouting\RouterInterface::class, \JMS\ObjectRouting\Symfony\Symfony22Adapter::class);
15+
16+
$services->set(\JMS\ObjectRouting\Symfony\Symfony22Adapter::class);
17+
18+
$services->set(\JMS\ObjectRouting\ObjectRouter::class)
19+
->public();
20+
21+
$services->set(\JMS\ObjectRouting\Twig\RoutingExtension::class);
22+
23+
$services->alias(\Metadata\Driver\DriverInterface::class, \Metadata\Driver\DriverChain::class)
24+
->public();
25+
26+
$services->set(\Metadata\Driver\DriverChain::class)
27+
->args([['' => service(\JMS\ObjectRouting\Metadata\Driver\AttributeDriver::class)]]);
28+
29+
$services->set(\JMS\ObjectRouting\Metadata\Driver\AttributeDriver::class);
30+
31+
$services->alias(\Metadata\Cache\CacheInterface::class, \Metadata\Cache\FileCache::class);
32+
33+
$services->set(\Metadata\Cache\FileCache::class)
34+
->args([
35+
'%bg_object_routing.cache_dir%',
36+
'%kernel.debug%',
37+
]);
38+
39+
$services->set(\Metadata\MetadataFactory::class)
40+
->args([
41+
'$driver' => inline_service(\Metadata\Driver\LazyLoadingDriver::class)
42+
->args([
43+
service('service_container'),
44+
\Metadata\Driver\DriverInterface::class,
45+
]),
46+
'$hierarchyMetadataClass' => \Metadata\ClassHierarchyMetadata::class,
47+
'$debug' => '%kernel.debug%',
48+
])
49+
->call('setCache', [service(\Metadata\Cache\CacheInterface::class)])
50+
->call('setIncludeInterfaces', [true]);
51+
52+
$services->alias(\Metadata\MetadataFactoryInterface::class, \Metadata\MetadataFactory::class);
53+
};

src/Resources/config/services.xml

Lines changed: 0 additions & 55 deletions
This file was deleted.

0 commit comments

Comments
 (0)