Composer自动加载器未加载GuzzleHttp \ ClientInterface [英] Composer autoloader not loading GuzzleHttp\ClientInterface
问题描述
我正在尝试使用 Guzzle ,但是我得到了以下致命错误:
I'm trying to use Guzzle, but I'm getting the following fatal error:
致命错误:找不到类'GuzzleHttp \ ClientInterface' /var/www/myapp/vendor/guzzlehttp/guzzle/src/functions.php,第13行
Fatal error: Class 'GuzzleHttp\ClientInterface' not found in /var/www/myapp/vendor/guzzlehttp/guzzle/src/functions.php on line 13
我正在使用作曲家自动加载器进行自动加载:
I'm autoloading with composer autoloader:
require 'vendor/autoload.php';
use Guzzle\Http\Client;
$client = new Client();
$requests = Array(
$client->createRequest('GET', 'ams1.myapp.com:8080/api/ffmpeg_make_snapshots.php'),
$client->createRequest('GET', 'ams2.myapp.com:8080/api/ffmpeg_make_snapshots.php'),
$client->createRequest('GET', 'ams3.myapp.com:8080/api/ffmpeg_make_snapshots.php')
);
$client->sendAll($requests);
发生了什么事?
编辑
我的composer.json:
My composer.json:
{
"require": {
"guzzlehttp/guzzle": "~4"
}
}
编辑2
我的作曲家.
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
],
"hash": "33c003b6e3e2dc0144146f9b652a6719",
"packages": [
{
"name": "guzzlehttp/guzzle",
"version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "4063f08ca434efac12bf7a3db0d370b1c451345b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/4063f08ca434efac12bf7a3db0d370b1c451345b",
"reference": "4063f08ca434efac12bf7a3db0d370b1c451345b",
"shasum": ""
},
"require": {
"guzzlehttp/streams": "1.*",
"php": ">=5.4.0"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "4.*",
"psr/log": "~1"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0.x-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\": "src/"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"time": "2014-03-29 23:11:36"
},
{
"name": "guzzlehttp/streams",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/streams.git",
"reference": "3b761a328e5ed6ed519e960aded95d7acbe77894"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/streams/zipball/3b761a328e5ed6ed519e960aded95d7acbe77894",
"reference": "3b761a328e5ed6ed519e960aded95d7acbe77894",
"shasum": ""
},
"require": {
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4.x-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Stream\\": "src/"
},
"files": [
"src/functions.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Provides a simple abstraction over streams of data (Guzzle 4+)",
"homepage": "http://guzzlephp.org/",
"keywords": [
"Guzzle",
"stream"
],
"time": "2014-07-19 18:43:42"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"platform": [],
"platform-dev": []
}
编辑3
composer config -l输出:
composer config -l output:
[repositories.packagist.type] composer
[repositories.packagist.url] https?://packagist.org
[repositories.packagist.allow_ssl_downgrade] true
[process-timeout] 300
[use-include-path] false
[preferred-install] auto
[notify-on-install] true
[github-protocols] [git, https]
[vendor-dir] vendor
[bin-dir] {$vendor-dir}/bin (vendor/bin)
[cache-dir] C:/Users/User/AppData/Local/Composer
[cache-files-dir] {$cache-dir}/files (C:/Users/User/AppData/Local/Composer/files)
[cache-repo-dir] {$cache-dir}/repo (C:/Users/User/AppData/Local/Composer/repo)
[cache-vcs-dir] {$cache-dir}/vcs (C:/Users/User/AppData/Local/Composer/vcs)
[cache-ttl] 15552000
[cache-files-ttl] 15552000
[cache-files-maxsize] 300MiB (314572800)
[discard-changes] false
[prepend-autoloader] true
[github-domains] [github.com]
[home] C:/Users/User/AppData/Roaming/Compose
推荐答案
枪口4的名称空间为枪口3中的GuzzleHttp
,名称空间仅为Guzzle
.
The namespace for guzzle 4 is GuzzleHttp
in guzzle 3 the namespace was simply Guzzle
.
A composer.json
of
{
"require": {
"guzzlehttp/guzzle": "~4"
}
}
应该允许您运行以下脚本:
Should allow you to run a php script of:
require 'vendor/autoload.php';
use GuzzleHttp\Client;
$client = new Client();
$requests = Array(
$client->createRequest('GET', 'ams1.myapp.com:8080/api/ffmpeg_make_snapshots.php'),
$client->createRequest('GET', 'ams2.myapp.com:8080/api/ffmpeg_make_snapshots.php'),
$client->createRequest('GET', 'ams3.myapp.com:8080/api/ffmpeg_make_snapshots.php'),
);
$client->sendAll($requests);
如果自动装载器在更改名称空间后仍然失败,则可能是您的composer版本已过时并且无法识别PSR4
自动装载.如果vendor/composer/autoload_psr4.php
中没有文件,请尝试先执行composer self-update
,然后再执行composer dump-autoload
,以查看问题是否已解决.
If the autoloader still fails after changing the namespace it could be that your version of composer is out of date and does not recognize PSR4
autoloading. If there is no file in vendor/composer/autoload_psr4.php
try doing a composer self-update
followed by a composer dump-autoload
to see if the problem is resolved.
这篇关于Composer自动加载器未加载GuzzleHttp \ ClientInterface的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!