为什么我不能使用Composer将Guzzle导入我的Laravel项目?

时间:2017-01-24 13:44:39

标签: php laravel laravel-5 composer-php guzzle

我是 PHP Laravel 的新手,我发现在尝试添加 Guzzle 库时遇到了一些困难(我可以将其称为库PHP俚语,我来自Java ......)。

所以我遵循了这篇SO帖子的建议:Installation Guzzle in Laravel 5

我已将此依赖项添加到我的 composer.json 文件中:“guzzle / guzzle”:“*”

我已将其添加到原始文件的此部分(由Laravel生成):

"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.0",
    "symfony/css-selector": "3.1.*",
    "symfony/dom-crawler": "3.1.*",
    "guzzle/guzzle":"*"
},

我不知道它是不是正确的位置。

然后我将 composer update 语句执行到我的shell中(从我的项目的根目录)并获得此输出:

Andrea@Andrea-PC MINGW64 ~/Documents/Betrivius/WorkSpace/betriviusExtranet (master)
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead.
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
The compiled class file has been removed.

我认为没有错误,所以我认为它已成功完成。

问题是我无法在我的项目中找到这些依赖项,并且在类定义之前我尝试使用它:

use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;

我收到此错误消息:

Undefine namespace
Referenced namespace is not found

具体来说,我在这4个红色名称空间上获得了一条错误消息:

enter image description here

为什么呢?怎么了?我错过了什么?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

如上所述,您应该使用guzzlehttp/guzzle,而不是guzzle/guzzle

如果您确实需要使用guzzle/guzzle,则可以通过Guzzle命名空间导入,而不是GuzzleHttp,这是为新版本保留的。

答案 1 :(得分:2)

  

guzzle / guzzle被废弃,你应该避免使用它。请改用guzzlehttp / guzzle

使用guzzlehttp / guzzle