解决Laravel中的包声明冲突

时间:2014-06-24 19:18:44

标签: php laravel laravel-4 composer-php

我创建了一个工作台包,需要Guzzle在其特定于包的composer.json中。在项目的其他地方,主要的composer.json文件中也需要Guzzle,因为在项目的多个位置已经需要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
)

如何在仍然自动加载程序包和项目所需的依赖项的同时防止此类声明冲突?

1 个答案:

答案 0 :(得分:0)

在您的包中,在尝试实例化class_exists类之前使用Guzzle。如果它已经存在,那么它已经被声明,你应该可以继续使用它。

http://www.php.net//manual/en/function.class-exists.php