【发布时间】:2014-08-15 04:25:05
【问题描述】:
我创建了一个工作台包,在它的包特定 composer.json 中需要 Guzzle。在项目的其他地方,composer.json 主文件中也需要 Guzzle,因为项目中的多个位置已经需要它。
因此,在创建我的项目后,我现在收到以下错误:
Fatal error: Cannot redeclare GuzzleHttp\Stream\create()
(
previously declared
in C:\www\site.dev\laravel\vendor\guzzlehttp\streams\src\functions.php:14)
in C:\www\site.dev\laravel\workbench\ecomevo\mypackage\vendor\guzzlehttp\streams\src\functions.php
on line 40
)
如何在自动加载包和项目所需依赖项的同时防止此类声明冲突?
【问题讨论】:
-
您是否偶然需要两个不同的版本?
-
根 composer.json 有
"guzzlehttp/guzzle": "~4.0"并且特定于包的有"guzzlehttp/guzzle": "~4",我现在意识到他们正在拉出略有不同的版本。会不会是这个问题? -
这可能是问题所在。由于它们是不同的版本,因此它们都将被实例化。尝试使版本相同,看看会发生什么。
-
当我更改以匹配 composer.json 文件之间的版本时,我得到了同样的错误,但现在作曲家将它扔到
composer update。
标签: php laravel laravel-4 composer-php