php-http / client-common

Common HTTP Client implementations and tools for HTTPlug
http://httplug.io
MIT License
1.01k stars 53 forks source link

Cookie Plugin broken #223

Open KDederichs opened 1 year ago

KDederichs commented 1 year ago

PHP version: 8.1.11

Description When activating the cookie plugin (httplug.plugin.cookie) via the Symfony Bundle it'll break with

TypeError:
Http\Client\Common\Plugin\CookiePlugin::__construct(): Argument #1 ($cookieJar) must be of type Http\Message\CookieJar, string given, called in /srv/api/var/cache/dev/ContainerVyC0q30/getTEstApiService.php on line 30

  at vendor/php-http/client-common/src/Plugin/CookiePlugin.php:31
  at Http\Client\Common\Plugin\CookiePlugin->__construct('')
     (var/cache/dev/ContainerVyC0q30/getTEstApiService.php:30)
  at ContainerVyC0q30\getTEstApiService::do(object(App_KernelDevDebugContainer), true)
     (var/cache/dev/ContainerVyC0q30/App_KernelDevDebugContainer.php:792)
  at ContainerVyC0q30\App_KernelDevDebugContainer->load('getTEstApiService.php')
     (vendor/symfony/dependency-injection/Container.php:381)
  at Symfony\Component\DependencyInjection\Container->getService('privates', 'App\\Service\\TEstApi', 'getTEstApiService', true)
     (vendor/symfony/dependency-injection/Argument/ServiceLocator.php:40)
  at Symfony\Component\DependencyInjection\Argument\ServiceLocator->get('api')
     (vendor/symfony/http-kernel/Controller/ArgumentResolver/ServiceValueResolver.php:84)
  at Symfony\Component\HttpKernel\Controller\ArgumentResolver\ServiceValueResolver->resolve(object(Request), object(ArgumentMetadata))
     (vendor/symfony/http-kernel/Controller/ArgumentResolver/TraceableValueResolver.php:60)
  at Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver->resolve(object(Request), object(ArgumentMetadata))
     (vendor/symfony/http-kernel/Controller/ArgumentResolver.php:54)
  at Symfony\Component\HttpKernel\Controller\ArgumentResolver->getArguments(object(Request), array(object(MediaObjectController), 'testHrb'), object(ReflectionMethod))
     (vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php:39)
  at Symfony\Component\HttpKernel\Controller\TraceableArgumentResolver->getArguments(object(Request), array(object(MediaObjectController), 'testHrb'), object(ReflectionMethod))
     (vendor/symfony/http-kernel/HttpKernel.php:155)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor/symfony/http-kernel/HttpKernel.php:74)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor/symfony/http-kernel/Kernel.php:184)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
  at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
     (vendor/autoload_runtime.php:29)
  at require_once('/srv/api/vendor/autoload_runtime.php')
     (public/index.php:5)                

How to reproduce Make a client like this using the Symfony bundle:

        test:
            factory: 'httplug.factory.symfony'
            http_methods_client: true
            plugins:
                - 'httplug.plugin.cookie'

Possible Solution It probably needs a cookie jar service?