我有两个项目(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,这很好。
有什么想法吗?
答案 0 :(得分:3)
您不应该两次使用Composer自动加载器。
有一个简单的解决方案:在第三个项目中,创建一个新的composer.json
并在那里包含其他两个项目。
然后只包括第三个项目的自动加载。不会涉及重复的课程。如果您为两个项目中的任何一个项目中使用的库配置了正确的自动加载,那么这应该有效。