1

我有两个项目(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 的问题还是 composer 的问题?我已经尝试过使用另一个库,例如 monolog,这很好。

任何想法?

4

1 回答 1

3

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

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

然后只包括第三个项目的自动加载。不会涉及重复的类。如果您不仅为您在两个项目中的任何一个中使用的库配置了正确的自动加载,而且还为这些项目中的所有类配置了正确的自动加载,这应该可以工作。

于 2014-08-18T23:35:24.263 回答