GuzzleHttp \ Stream \ create () неопределенная функция при вызове композитором cmd

Я пытаюсь создать композитор post-install-cmd, который бы отправлял простой пост-запрос. Я использую этот простой блок в другом месте приложения, чтобы отправить тот же запрос на сервер разработки:

    $ESmapping = file_get_contents('path/to/mapping.json');
/** @var GuzzleHttp\Message\Response $ESresponse */
$ESresponse = (new Guzzle())->post($ESmappingUrl, ["body" => $ESmapping]);

Этот точный код работает в консольной команде Symfony2, но когда я пытаюсь отправить этот запрос в команде композитора, происходит сбой со следующим:

PHP Fatal error:  Call to undefined function GuzzleHttp\Stream\create() in /srv/www/htdocs/instagram-extractor/vendor/guzzlehttp/guzzle/src/Message/MessageFactory.php on line 179

Fatal error: Call to undefined function GuzzleHttp\Stream\create() in /srv/www/htdocs/instagram-extractor/vendor/guzzlehttp/guzzle/src/Message/MessageFactory.php on line 179

Я попытался создать поток заранее, используя $ stream = Stream :: factory (‘string data’);, но это не удалось с той же ошибкой (undefined Stream \ create ()), просто очевидно, с другим классом, вызывающим метод.

Я не нашел ни единой подсказки по этому вопросу, любая помощь будет оценена!

Спасибо!

Изменить: я подозревал, что это может быть проблема с автозагрузчиком, поэтому я попытался изменить psr-0 на psr-4, но безуспешно.

2

Решение

Выяснил, что Composer не загружает файл потоковых функций. Этот грязный хак работает вокруг этого:

require 'vendor/guzzlehttp/streams/src/functions.php';

Мне все еще интересно, есть ли лучшее решение для этого?

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]