mollie / mollie-api-php

Mollie API client for PHP
http://www.mollie.com
BSD 2-Clause "Simplified" License
552 stars 191 forks source link

PHP Fatal error: Uncaught Error: Call to undefined function _PhpScoper5f491826ce6ce\\GuzzleHttp\\choose_handler() #503

Closed hdijkema closed 3 years ago

hdijkema commented 4 years ago

Specifications

Describe the issue

PHP Fatal error: Uncaught Error: Call to undefined function _PhpScoper5f491826ce6ce\GuzzleHttp\choose_handler() in /data/www/zc4/mollie/vendor/guzzlehttp/guzzle/src/HandlerStack.php:39\nStack trace:\n#0 /data/www/zc4/mollie/vendor/guzzlehttp/guzzle/src/Client.php(64): _PhpScoper5f491826ce6ce\GuzzleHttp\HandlerStack::create()\n#1 /data/www/zc4/mollie/src/MollieApiClient.php(237): _PhpScoper5f491826ce6ce\GuzzleHttp\Client->__construct(Array)\n#2 /data/www/zc4/zc4_buy.php(197): Mollie\Api\MollieApiClient->__construct()\n#3 /data/www/zc4/zc4_buy.php(514): ZC4_PaymentManager->prepare_buy('xyz', 'abc', '35.00', 1.26)\n#4 /data/www/homnl/wp-content/plugins/insert-php/includes/shortcodes/shortcode-php.php(52) : eval()'d code(36): ZC4_PaymentManager->manage()\n#5 /data/www/homnl/wp-content/plugins/insert-php/includes/shortcodes/shortcode-php.php(52): eval()\n#6 /data/www/homnl/wp-content/plugins/insert-php/libs/factory/shortcodes/shortcode.class.php(287): WINP_SnippetShortcodePhp->html(Array, '', 'wbcr_php_snippe...')\n#7 /d in /data/www/zc4/mollie/vendor/guzzlehttp/guzzle/src/HandlerStack.php on line 39

Somehow your mollie api doesn't work anymore with WP 5.5.1. I don't know what the problem is. It seems to have been reported by someone else earlier. Looks like GuzzleHttp breaks.

What can I do? ...

hdijkema commented 4 years ago

I fixed this problem temporarily by adding these requirements to my php code:

require('mollie/vendor/autoload.php');
#### Temp GuzzleHttp stuff
#require('mollie/vendor/guzzlehttp/psr7/src/Request.php');
#require('mollie/vendor/guzzlehttp/psr7/src/Uri.php');
#require('mollie/vendor/guzzlehttp/psr7/src/UriNormalizer.php');
#require('mollie/vendor/guzzlehttp/psr7/src/PumpStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/InflateStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/Rfc7230.php');
#require('mollie/vendor/guzzlehttp/psr7/src/CachingStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/ServerRequest.php');
#require('mollie/vendor/guzzlehttp/psr7/src/StreamDecoratorTrait.php');
#require('mollie/vendor/guzzlehttp/psr7/src/BufferStream.php');
require('mollie/vendor/guzzlehttp/psr7/src/functions.php');
#require('mollie/vendor/guzzlehttp/psr7/src/UploadedFile.php');
#require('mollie/vendor/guzzlehttp/psr7/src/AppendStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/MessageTrait.php');
#require('mollie/vendor/guzzlehttp/psr7/src/FnStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/Stream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/functions_include.php');
#require('mollie/vendor/guzzlehttp/psr7/src/Response.php');
#require('mollie/vendor/guzzlehttp/psr7/src/UriResolver.php');
#require('mollie/vendor/guzzlehttp/psr7/src/NoSeekStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/StreamWrapper.php');
#require('mollie/vendor/guzzlehttp/psr7/src/LazyOpenStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/MultipartStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/DroppingStream.php');
#require('mollie/vendor/guzzlehttp/psr7/src/LimitStream.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/HandlerStack.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/ClientInterface.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/TransferStats.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Middleware.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Utils.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Pool.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/GuzzleException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/SeekException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/InvalidArgumentException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/TransferException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/TooManyRedirectsException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/ClientException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/ServerException.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Exception/BadResponseException.php');
require('mollie/vendor/guzzlehttp/guzzle/src/functions.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/MockHandler.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/EasyHandle.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/CurlFactoryInterface.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/Proxy.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/UriTemplate.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Cookie/CookieJar.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Cookie/CookieJarInterface.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Cookie/FileCookieJar.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Cookie/SessionCookieJar.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Cookie/SetCookie.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/RetryMiddleware.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/functions_include.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/Client.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/MessageFormatter.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/RequestOptions.php');
#require('mollie/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php');
#require('mollie/vendor/guzzlehttp/promises/src/CancellationException.php');
#require('mollie/vendor/guzzlehttp/promises/src/Coroutine.php');
#require('mollie/vendor/guzzlehttp/promises/src/PromiseInterface.php');
#require('mollie/vendor/guzzlehttp/promises/src/PromiseInterface.php');
#require('mollie/vendor/guzzlehttp/promises/src/EachPromise.php');
#require('mollie/vendor/guzzlehttp/promises/src/PromisorInterface.php');
#require('mollie/vendor/guzzlehttp/promises/src/TaskQueueInterface.php');
require('mollie/vendor/guzzlehttp/promises/src/functions.php');
#require('mollie/vendor/guzzlehttp/promises/src/FulfilledPromise.php');
#require('mollie/vendor/guzzlehttp/promises/src/functions_include.php');
#require('mollie/vendor/guzzlehttp/promises/src/TaskQueue.php');
#require('mollie/vendor/guzzlehttp/promises/src/RejectionException.php');
#require('mollie/vendor/guzzlehttp/promises/src/Promise.php');
#require('mollie/vendor/guzzlehttp/promises/src/RejectedPromise.php');
#require('mollie/vendor/guzzlehttp/promises/src/AggregateException.php');
#### END Temp GuzzleHttp stuff
Timollie commented 3 years ago

Hi there,

this is most likely due to an issue with PHP scoper. Please update 2.27.1 of the precompiled package or update phpscoper if you are using it locally.

QualityWorks commented 3 years ago

We are sometimes seeing this issue in Opencart if another mod also is using composer. This is a recent issue

sandervanhooft commented 3 years ago

I've prepared an alpha release that removes the guzzle requirement. Feel free to try it out.

Closing this for now, let me know if it should be reopened.

https://github.com/mollie/mollie-api-php/releases/tag/v2.31.1-alpha

thd-fox commented 3 years ago

@sandervanhooft Tried your alpha, but still seeing this error:

Fatal error:  Uncaught TypeError: Argument 1 passed to Mollie\Api\Exceptions\ApiException::createFromResponse() must be an instance of _PhpScoper3234cdc49fbb\Psr\Http\Message\ResponseInterface, instance of GuzzleHttp\Psr7\Response given, called in /var/www/vhosts/domain.tld/httpdocs/wp-content/plugins/custom-plugin/vendor/mollie/mollie-api-php/src/HttpAdapter/Guzzle6And7MollieHttpAdapter.php on line 123 and defined in /var/www/vhosts/domain.tld/httpdocs/wp-content/plugins/mollie-payments-for-woocommerce/vendor/mollie/mollie-api-php/src/Exceptions/ApiException.php:95
Stack trace:
#0 /var/www/vhosts/domain.tld/httpdocs/wp-content/plugins/custom-plugin/vendor/mollie/mollie-api-php/src/HttpAdapter/Guzzle6And7MollieHttpAdapter.php(123): Mollie\Api\Exceptions\ApiException::createFromResponse()
#1 /var/www/vhosts/domain.tld/httpdocs/wp-content/plugins/custom-plugin/vendor/mollie/mollie-api-php/src/HttpAdapter/Guzzle6And7MollieHttpAdapter.php(95): Mollie\Api\HttpAdapter\Guzzle6And7MollieHttpAdapter->parseRespo in /var/www/vhosts/domain.tld/httpdocs/wp-content/plugins/mollie-payments-for-woocommerce/vendor/mollie/mollie-api-php/src/Exceptions/ApiException.php on line 95

It seems to still use library from mollie-payments-for-woocommerce plugin, instead of library from custom plugin. :(