我正在尝试创建一个composer post-install cmd,它将发送一个简单的post请求。我在应用程序的其他地方使用这个简单的块来向开发服务器提交相同的请求:
$ESmapping = file_get_contents('path/to/mapping.json');
/** @var GuzzleHttpMessageResponse $ESresponse */
$ESresponse = (new Guzzle())->post($ESmappingUrl, ["body" => $ESmapping]);
这个确切的代码在Symfony2控制台命令中有效,但当我试图在composer命令中发送该请求时,它失败了,出现以下情况:
PHP Fatal error: Call to undefined function GuzzleHttpStreamcreate() in /srv/www/htdocs/instagram-extractor/vendor/guzzlehttp/guzzle/src/Message/MessageFactory.php on line 179
Fatal error: Call to undefined function GuzzleHttpStreamcreate() in /srv/www/htdocs/instagram-extractor/vendor/guzzlehttp/guzzle/src/Message/MessageFactory.php on line 179
我尝试预先使用$stream=stream::factory("字符串数据");创建流;,但它失败了,出现了相同的错误(未定义的Stream \create()),只是显然是由不同的类调用该方法。
我还没有发现任何关于这个问题的线索,任何帮助都将不胜感激!
谢谢!
编辑:我怀疑这可能是自动加载器的问题,所以我尝试将psr-0更改为psr-4,但没有成功。
发现Composer没有自动加载流函数文件。这个肮脏的黑客绕过它:
require 'vendor/guzzlehttp/streams/src/functions.php';
我仍然想知道是否有更好的解决方案?