Skip to content

Commit 9a7b7ce

Browse files
authored
Merge pull request #651 from FriendsOfSymfony/sf8
allow installation with symfony 8 and test with php 8.5
2 parents 389b6d8 + d600b77 commit 9a7b7ce

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+602
-579
lines changed

.github/workflows/php.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,15 @@ jobs:
2828
- php-version: '8.3'
2929
symfony-version: '7.*'
3030
- php-version: '8.4'
31-
symfony-version: '7.*'
31+
symfony-version: '8.*'
32+
- php-version: '8.5'
33+
symfony-version: '8.*'
3234
# Minimum supported dependencies with the oldest PHP version
3335
- php-version: '8.1'
3436
composer-flag: '--prefer-stable --prefer-lowest'
3537
symfony-version: '6.4'
3638
# Test latest unreleased versions
37-
- php-version: '8.4'
39+
- php-version: '8.5'
3840
stability: 'dev'
3941

4042
name: PHP ${{ matrix.php-version }} Test on Symfony ${{ matrix.symfony-version }} ${{ matrix.dependencies}} ${{ matrix.stability }} ${{ matrix.composer-flag }}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ Changelog
44
3.x
55
===
66

7+
3.3
8+
---
9+
10+
* Compatibility with Symfony 8 (changed configuration from XML to PHP).
11+
* Tested with php 8.5.
12+
713
3.2.0
814
-----
915

composer.json

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
"require": {
3131
"php": "^8.1",
3232
"friendsofsymfony/http-cache": "^3.0",
33-
"symfony/dependency-injection": "^6.4 || ^7.0",
34-
"symfony/expression-language": "^6.4 || ^7.0",
35-
"symfony/framework-bundle": "^6.4 || ^7.0",
36-
"symfony/http-foundation": "^6.4 || ^7.0",
37-
"symfony/http-kernel": "^6.4 || ^7.0",
38-
"symfony/security-bundle": "^6.4 || ^7.0"
33+
"symfony/dependency-injection": "^6.4 || ^7.0 || ^8.0",
34+
"symfony/expression-language": "^6.4 || ^7.0 || ^8.0",
35+
"symfony/framework-bundle": "^6.4 || ^7.0 || ^8.0",
36+
"symfony/http-foundation": "^6.4 || ^7.0 || ^8.0",
37+
"symfony/http-kernel": "^6.4 || ^7.0 || ^8.0",
38+
"symfony/security-bundle": "^6.4 || ^7.0 || ^8.0"
3939
},
4040
"require-dev": {
4141
"php-http/guzzle7-adapter": "^0.1.1",
@@ -45,18 +45,18 @@
4545
"guzzlehttp/guzzle": "^7.2",
4646
"mockery/mockery": "^1.6.9",
4747
"monolog/monolog": "*",
48-
"symfony/browser-kit": "^6.4 || ^7.0",
49-
"symfony/console": "^6.4 || ^7.0",
50-
"symfony/finder": "^6.4 || ^7.0",
48+
"symfony/browser-kit": "^6.4 || ^7.0 || ^8.0",
49+
"symfony/console": "^6.4 || ^7.0 || ^8.0",
50+
"symfony/finder": "^6.4 || ^7.0 || ^8.0",
5151
"phpunit/phpunit": "^10.5",
52-
"symfony/twig-bundle": "^6.4 || ^7.0",
52+
"symfony/twig-bundle": "^6.4 || ^7.0 || ^8.0",
5353
"twig/twig": "^v3.8",
54-
"symfony/yaml": "^6.4 || ^7.0",
55-
"symfony/css-selector": "^6.4 || ^7.0",
56-
"symfony/monolog-bundle": "^3.0",
57-
"symfony/routing": "^6.4 || ^7.0",
58-
"matthiasnoback/symfony-config-test": "^4.3.0 || ^5.1",
59-
"matthiasnoback/symfony-dependency-injection-test": "^4.3.1 || ^5.0",
54+
"symfony/yaml": "^6.4 || ^7.0 || ^8.0",
55+
"symfony/css-selector": "^6.4 || ^7.0 || ^8.0",
56+
"symfony/monolog-bundle": "*",
57+
"symfony/routing": "^6.4 || ^7.0 || ^8.0",
58+
"matthiasnoback/symfony-config-test": "^5.2 || ^6.1",
59+
"matthiasnoback/symfony-dependency-injection-test": "^5.1 || ^6.2",
6060
"phpstan/phpstan": "^2",
6161
"phpstan/phpstan-symfony": "^2",
6262
"phpstan/extension-installer": "^1.4",
@@ -90,6 +90,9 @@
9090
"allow-plugins": {
9191
"php-http/discovery": true,
9292
"phpstan/extension-installer": true
93+
},
94+
"audit": {
95+
"block-insecure": false
9396
}
9497
}
9598
}

src/DependencyInjection/FOSHttpCacheExtension.php

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
use Symfony\Component\DependencyInjection\ContainerBuilder;
2828
use Symfony\Component\DependencyInjection\Definition;
2929
use Symfony\Component\DependencyInjection\Extension\Extension;
30-
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
30+
use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
3131
use Symfony\Component\DependencyInjection\Reference;
3232
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
3333
use Twig\TwigFunction;
@@ -44,15 +44,15 @@ public function load(array $configs, ContainerBuilder $container): void
4444
$configuration = $this->getConfiguration($configs, $container);
4545
$config = $this->processConfiguration($configuration, $configs);
4646

47-
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
48-
$loader->load('matcher.xml');
47+
$loader = new PhpFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
48+
$loader->load('matcher.php');
4949

5050
if ($config['debug']['enabled'] || (!empty($config['cache_control']))) {
5151
$debugHeader = $config['debug']['enabled'] ? $config['debug']['header'] : false;
5252
$ttlHeader = $config['cache_control']['ttl_header'] ?? CacheControlListener::DEFAULT_TTL_HEADER_NAME;
5353
$container->setParameter('fos_http_cache.debug_header', $debugHeader);
5454
$container->setParameter('fos_http_cache.ttl_header', $ttlHeader);
55-
$loader->load('cache_control_listener.xml');
55+
$loader->load('cache_control_listener.php');
5656
}
5757

5858
$this->loadCacheable($container, $config['cacheable']);
@@ -99,9 +99,9 @@ public function load(array $configs, ContainerBuilder $container): void
9999
$generateUrlType = $config['cache_manager']['generate_url_type'];
100100
}
101101
$container->setParameter('fos_http_cache.cache_manager.generate_url_type', $generateUrlType);
102-
$loader->load('cache_manager.xml');
102+
$loader->load('cache_manager.php');
103103
if (class_exists(Application::class)) {
104-
$loader->load('cache_manager_commands.xml');
104+
$loader->load('cache_manager_commands.php');
105105
}
106106
}
107107

@@ -117,7 +117,7 @@ public function load(array $configs, ContainerBuilder $container): void
117117
}
118118

119119
if ($config['invalidation']['enabled']) {
120-
$loader->load('invalidation_listener.xml');
120+
$loader->load('invalidation_listener.php');
121121

122122
if (!empty($config['invalidation']['expression_language'])) {
123123
$container->setAlias(
@@ -139,10 +139,10 @@ public function load(array $configs, ContainerBuilder $container): void
139139
unset($config['flash_message']['enabled']);
140140
$container->setParameter('fos_http_cache.event_listener.flash_message.options', $config['flash_message']);
141141

142-
$loader->load('flash_message.xml');
142+
$loader->load('flash_message.php');
143143
}
144144

145-
$loader->load('attributes.xml');
145+
$loader->load('attributes.php');
146146
}
147147

148148
private function loadCacheable(ContainerBuilder $container, array $config): void
@@ -279,15 +279,15 @@ private function parseResponseMatcher(ContainerBuilder $container, array $config
279279
return new Reference('fos_http_cache.response_matcher.cacheable');
280280
}
281281

282-
private function loadUserContext(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
282+
private function loadUserContext(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
283283
{
284284
$configuredUserIdentifierHeaders = array_map('strtolower', $config['user_identifier_headers']);
285285
$completeUserIdentifierHeaders = $configuredUserIdentifierHeaders;
286286
if (false !== $config['session_name_prefix'] && !in_array('cookie', $completeUserIdentifierHeaders)) {
287287
$completeUserIdentifierHeaders[] = 'cookie';
288288
}
289289

290-
$loader->load('user_context.xml');
290+
$loader->load('user_context.php');
291291

292292
$container->getDefinition('fos_http_cache.user_context.request_matcher')
293293
->replaceArgument(0, $config['match']['accept'])
@@ -326,7 +326,7 @@ private function loadUserContext(ContainerBuilder $container, XmlFileLoader $loa
326326
}
327327
}
328328

329-
private function loadProxyClient(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
329+
private function loadProxyClient(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
330330
{
331331
if (isset($config['varnish'])) {
332332
$this->loadVarnish($container, $loader, $config['varnish']);
@@ -347,7 +347,7 @@ private function loadProxyClient(ContainerBuilder $container, XmlFileLoader $loa
347347
$this->loadFastly($container, $loader, $config['fastly']);
348348
}
349349
if (isset($config['noop'])) {
350-
$loader->load('noop.xml');
350+
$loader->load('noop.php');
351351
}
352352

353353
$container->setAlias(
@@ -410,7 +410,7 @@ private function createHttpDispatcherDefinition(ContainerBuilder $container, arr
410410
$container->setDefinition($serviceName, $definition);
411411
}
412412

413-
private function loadVarnish(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
413+
private function loadVarnish(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
414414
{
415415
$this->createHttpDispatcherDefinition($container, $config['http'], 'fos_http_cache.proxy_client.varnish.http_dispatcher');
416416
$options = [
@@ -426,7 +426,7 @@ private function loadVarnish(ContainerBuilder $container, XmlFileLoader $loader,
426426
}
427427
$container->setParameter('fos_http_cache.proxy_client.varnish.options', $options);
428428

429-
$loader->load('varnish.xml');
429+
$loader->load('varnish.php');
430430

431431
$requestFactory = isset($config['http']['request_factory'])
432432
? new Reference($config['http']['request_factory'])
@@ -441,13 +441,13 @@ private function loadVarnish(ContainerBuilder $container, XmlFileLoader $loader,
441441
->replaceArgument(3, $streamFactory);
442442
}
443443

444-
private function loadNginx(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
444+
private function loadNginx(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
445445
{
446446
$this->createHttpDispatcherDefinition($container, $config['http'], 'fos_http_cache.proxy_client.nginx.http_dispatcher');
447447
$container->setParameter('fos_http_cache.proxy_client.nginx.options', [
448448
'purge_location' => $config['purge_location'],
449449
]);
450-
$loader->load('nginx.xml');
450+
$loader->load('nginx.php');
451451

452452
$requestFactory = isset($config['http']['request_factory'])
453453
? new Reference($config['http']['request_factory'])
@@ -462,7 +462,7 @@ private function loadNginx(ContainerBuilder $container, XmlFileLoader $loader, a
462462
->replaceArgument(3, $streamFactory);
463463
}
464464

465-
private function loadSymfony(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
465+
private function loadSymfony(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
466466
{
467467
$serviceName = 'fos_http_cache.proxy_client.symfony.http_dispatcher';
468468

@@ -485,7 +485,7 @@ private function loadSymfony(ContainerBuilder $container, XmlFileLoader $loader,
485485
}
486486
$container->setParameter('fos_http_cache.proxy_client.symfony.options', $options);
487487

488-
$loader->load('symfony.xml');
488+
$loader->load('symfony.php');
489489

490490
$requestFactory = isset($config['http']['request_factory'])
491491
? new Reference($config['http']['request_factory'])
@@ -500,7 +500,7 @@ private function loadSymfony(ContainerBuilder $container, XmlFileLoader $loader,
500500
->replaceArgument(3, $streamFactory);
501501
}
502502

503-
private function loadCloudflare(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
503+
private function loadCloudflare(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
504504
{
505505
$this->createHttpDispatcherDefinition($container, $config['http'], 'fos_http_cache.proxy_client.cloudflare.http_dispatcher');
506506
$options = [
@@ -510,7 +510,7 @@ private function loadCloudflare(ContainerBuilder $container, XmlFileLoader $load
510510

511511
$container->setParameter('fos_http_cache.proxy_client.cloudflare.options', $options);
512512

513-
$loader->load('cloudflare.xml');
513+
$loader->load('cloudflare.php');
514514

515515
$requestFactory = isset($config['http']['request_factory'])
516516
? new Reference($config['http']['request_factory'])
@@ -525,7 +525,7 @@ private function loadCloudflare(ContainerBuilder $container, XmlFileLoader $load
525525
->replaceArgument(3, $streamFactory);
526526
}
527527

528-
private function loadCloudfront(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
528+
private function loadCloudfront(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
529529
{
530530
if (null !== $config['client']) {
531531
$container->setAlias(
@@ -543,10 +543,10 @@ private function loadCloudfront(ContainerBuilder $container, XmlFileLoader $load
543543
'distribution_id' => $config['distribution_id'],
544544
]);
545545

546-
$loader->load('cloudfront.xml');
546+
$loader->load('cloudfront.php');
547547
}
548548

549-
private function loadFastly(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
549+
private function loadFastly(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
550550
{
551551
$this->createHttpDispatcherDefinition($container, $config['http'], 'fos_http_cache.proxy_client.fastly.http_dispatcher');
552552

@@ -558,7 +558,7 @@ private function loadFastly(ContainerBuilder $container, XmlFileLoader $loader,
558558

559559
$container->setParameter('fos_http_cache.proxy_client.fastly.options', $options);
560560

561-
$loader->load('fastly.xml');
561+
$loader->load('fastly.php');
562562

563563
$requestFactory = isset($config['http']['request_factory'])
564564
? new Reference($config['http']['request_factory'])
@@ -578,7 +578,7 @@ private function loadFastly(ContainerBuilder $container, XmlFileLoader $loader,
578578
* @param string $client Name of the client used with the cache manager,
579579
* "custom" when a custom client is used
580580
*/
581-
private function loadCacheTagging(ContainerBuilder $container, XmlFileLoader $loader, array $config, string $client): void
581+
private function loadCacheTagging(ContainerBuilder $container, PhpFileLoader $loader, array $config, string $client): void
582582
{
583583
if ('auto' === $config['enabled'] && !in_array($client, ['varnish', 'symfony', 'cloudflare', 'fastly'])) {
584584
return;
@@ -591,12 +591,12 @@ private function loadCacheTagging(ContainerBuilder $container, XmlFileLoader $lo
591591
$container->setParameter('fos_http_cache.tag_handler.separator', $config['separator']);
592592
$container->setParameter('fos_http_cache.tag_handler.strict', $config['strict']);
593593

594-
$loader->load('cache_tagging.xml');
594+
$loader->load('cache_tagging.php');
595595
if (class_exists(TwigFunction::class)) {
596-
$loader->load('cache_tagging_twig.xml');
596+
$loader->load('cache_tagging_twig.php');
597597
}
598598
if (class_exists(Application::class)) {
599-
$loader->load('cache_tagging_commands.xml');
599+
$loader->load('cache_tagging_commands.php');
600600
}
601601

602602
if (!empty($config['expression_language'])) {
@@ -618,7 +618,7 @@ private function loadCacheTagging(ContainerBuilder $container, XmlFileLoader $lo
618618
}
619619
}
620620

621-
private function loadTest(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
621+
private function loadTest(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
622622
{
623623
$container->setParameter('fos_http_cache.test.cache_header', $config['cache_header']);
624624

@@ -627,7 +627,7 @@ private function loadTest(ContainerBuilder $container, XmlFileLoader $loader, ar
627627
}
628628
}
629629

630-
private function loadProxyServer(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
630+
private function loadProxyServer(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
631631
{
632632
if (isset($config['varnish'])) {
633633
$this->loadVarnishProxyServer($container, $loader, $config['varnish']);
@@ -643,9 +643,9 @@ private function loadProxyServer(ContainerBuilder $container, XmlFileLoader $loa
643643
);
644644
}
645645

646-
private function loadVarnishProxyServer(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
646+
private function loadVarnishProxyServer(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
647647
{
648-
$loader->load('varnish_proxy.xml');
648+
$loader->load('varnish_proxy.php');
649649
foreach ($config as $key => $value) {
650650
$container->setParameter(
651651
'fos_http_cache.test.proxy_server.varnish.'.$key,
@@ -654,9 +654,9 @@ private function loadVarnishProxyServer(ContainerBuilder $container, XmlFileLoad
654654
}
655655
}
656656

657-
private function loadNginxProxyServer(ContainerBuilder $container, XmlFileLoader $loader, array $config): void
657+
private function loadNginxProxyServer(ContainerBuilder $container, PhpFileLoader $loader, array $config): void
658658
{
659-
$loader->load('nginx_proxy.xml');
659+
$loader->load('nginx_proxy.php');
660660
foreach ($config as $key => $value) {
661661
$container->setParameter(
662662
'fos_http_cache.test.proxy_server.nginx.'.$key,
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
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->set('fos_http_cache.event_listener.attributes', \FOS\HttpCacheBundle\EventListener\AttributesListener::class)
10+
->args([service('controller_resolver')])
11+
->tag('kernel.event_subscriber');
12+
};

src/Resources/config/attributes.xml

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

0 commit comments

Comments
 (0)