当composer cmd调用时,GuzzleHttp \ Stream \ create()未定义的函数

时间:2014-09-21 20:37:57

标签: php composer-php guzzle

我正在尝试创建一个post-install-cmd的作曲家,它会发送一个简单的帖子请求。我在应用程序的其他地方使用这个简单的块来向开发服务器提交相同的请求:

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

这个确切的代码在Symfony2控制台命令中有效,但是当我尝试在composer命令中发送该请求时,它失败并显示以下内容:

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但没有成功。

1 个答案:

答案 0 :(得分:2)

想出Composer不会自动加载流功能文件。这个肮脏的黑客可以解决它:

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

我仍然想知道是否有更好的解决方案呢?