diff --git a/composer.json b/composer.json index a90d1dd..f19c6bb 100644 --- a/composer.json +++ b/composer.json @@ -7,14 +7,12 @@ } }, "require": { - "php": "^5.6 || ^7.1", - "code-tool/curl-client": "^1.6 || ^4", - "symfony/config": "^2.6 || ^3.4 || ^4", - "symfony/http-kernel": "^2.6 || ^3.4 || ^4", - "symfony/dependency-injection": "^2.6 || ^3.4 || ^4" - }, - "require-dev": { - "phpunit/phpunit": "@stable" + "php": "^7.1 || ^8.0", + "code-tool/curl-client": "^5.1", + "symfony/config": "^3.4 || ^4 || ^5 || ^6 || ^7", + "symfony/http-kernel": "^3.4 || ^4 || ^5 || ^6 || ^7", + "symfony/dependency-injection": "^3.4 || ^4.1.12 || ^5 || ^6 || ^7", + "slim/psr7": "^1.0" }, "minimum-stability": "dev", "prefer-stable": true diff --git a/src/Bundle/CurlClientBundle.php b/src/Bundle/CurlClientBundle.php index d521688..79a2c66 100644 --- a/src/Bundle/CurlClientBundle.php +++ b/src/Bundle/CurlClientBundle.php @@ -1,12 +1,15 @@ root('http_client'); - + $treeBuilder = new TreeBuilder('http_client'); + if (method_exists($treeBuilder, 'getRootNode')) { + $rootNode = $treeBuilder->getRootNode(); + } else { + $rootNode = $treeBuilder->root('http_client'); + } $rootNode ->children() - ->scalarNode('adapter')->defaultValue('slim')->end() - ->booleanNode('public')->defaultTrue()->end() + ->scalarNode('adapter')->defaultValue('slim')->end() + ->booleanNode('public')->defaultTrue()->end() ->end(); return $treeBuilder; diff --git a/src/Resources/DependencyInjection/CurlClientExtension.php b/src/Resources/DependencyInjection/CurlClientExtension.php index e98e3b0..4b07737 100644 --- a/src/Resources/DependencyInjection/CurlClientExtension.php +++ b/src/Resources/DependencyInjection/CurlClientExtension.php @@ -1,4 +1,5 @@ getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); - $loader = new YamlFileLoader( $container, new FileLocator(__DIR__ . '/../config') ); $loader->load('services.yml'); - - foreach (['http.message.factory', 'http.response.factory', 'http.request.factory'] as $definition) { + foreach ([ + 'http.request.factory', + 'http.response.factory', + 'http.server.factory', + 'http.stream.factory', + 'http.file.factory', + 'http.uri.factory', + ] as $definition) { $adapter = $config['adapter']; $id = sprintf('%s.%s', $definition, $adapter); if (false === $container->has($id)) { diff --git a/src/Resources/config/services.yml b/src/Resources/config/services.yml index 16e59a4..1c9d4f6 100644 --- a/src/Resources/config/services.yml +++ b/src/Resources/config/services.yml @@ -3,37 +3,30 @@ parameters: services: curl.channel.builder: class: Http\Client\Curl\Channel\Builder\CurlChannelBuilder - curl.request.builder: class: Http\Client\Curl\Request\Builder\RequestBuilder shared: false - arguments: ['@http.uri.factory', '@http.request.factory'] - http.message.factory.slim: - class: Http\Message\MessageFactory\SlimMessageFactory + arguments: ['@http.stream.factory', '@http.request.factory'] + http.request.factory.slim: + class: Slim\Psr7\Factory\RequestFactory + arguments: ['@http.stream.factory', '@http.uri.factory'] + http.response.factory.slim: + class: Slim\Psr7\Factory\ResponseFactory + http.server.factory.slim: + class: Slim\Psr7\Factory\ServerRequestFactory + arguments: ['@http.stream.factory', '@http.uri.factory'] + http.stream.factory.slim: + class: Slim\Psr7\Factory\StreamFactory + http.file.factory.slim: + class: Slim\Psr7\Factory\UploadedFileFactory http.uri.factory.slim: - class: Http\Message\UriFactory\SlimUriFactory - http.response.factory.slim: '@http.message.factory.slim' - http.request.factory.slim: '@http.message.factory.slim' - - http.message.factory.guzzle: - class: Http\Message\MessageFactory\GuzzleMessageFactory - http.uri.factory.guzzle: - class: Http\Message\UriFactory\GuzzleUriFactory - http.response.factory.guzzle: '@http.message.factory.guzzle' - http.request.factory.guzzle: '@http.message.factory.guzzle' - - http.message.factory.diactoros: - class: Http\Message\MessageFactory\DiactorosMessageFactory - http.uri.factory.diactoros: - class: Http\Message\UriFactory\DiactorosUriFactory - http.response.factory.diactoros: '@http.message.factory.diactoros' - http.request.factory.diactoros: '@http.message.factory.diactoros' - - http.message.factory: '@http.message.factory.slim' + class: Slim\Psr7\Factory\UriFactory + http.request.factory: '@http.request.factory.slim' + http.response.factory: '@http.response.factory.slim' + http.server.factory: '@http.server.factory.slim' + http.stream.factory: '@http.stream.factory.slim' + http.file.factory: '@http.file.factory.slim' http.uri.factory: '@http.uri.factory.slim' - http.response.factory: '@http.message.factory.slim' - http.request.factory: '@http.message.factory.slim' - http.client.curl: class: Http\Client\Curl\CurlClient arguments: ['@curl.channel.builder', '@http.response.factory', '%curl.options%']