使用composer同时自动加载两个供应商项目

时间:2014-08-18 09:30:29

标签: php composer-php autoload psr-0

我有两个项目(project1,project2),正确设置了composer,并拥有自己的 composer.json

{
    "require": {
        "wp-cli/wp-cli": "0.15.1"
    }
}

现在,在另一个php文件中,我通过

自动加载它们
require_once 'project1/vendor/autoload.php';
require_once 'project2/vendor/autoload.php';

我收到错误

Fatal error: Cannot redeclare cli\render() (previously declared in 
/private/tmp/php/project1/vendor/wp-cli/php-cli-tools/lib/cli/cli.php:26)
in /private/tmp/php/project2/vendor/wp-cli/php-cli-tools/lib/cli/cli.php 
on line 28

是wp-cli的问题还是作曲家的问题?我已尝试使用其他库,例如monolog,这很好。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您不应该两次使用Composer自动加载器。

有一个简单的解决方案:在第三个项目中,创建一个新的composer.json并在那里包含其他两个项目。

然后只包括第三个项目的自动加载。不会涉及重复的课程。如果您为两个项目中的任何一个项目中使用的库配置了正确的自动加载,那么这应该有效。