Php 指示编写器在不明确时使用不同的类

Php 指示编写器在不明确时使用不同的类,php,composer-php,Php,Composer Php,在执行composer更新时,我收到以下警告: 警告:在“/var/www/concrete5/vendor/patchwork/utf8/src/Normalizer.php”和“/var/www/concrete5/vendor/voku/portable-utf8/src/Normalizer.php”中都发现了不明确的类解析“Normalizer”,将使用第一个 该站点现在遇到错误,我认为可能与此有关 如何指示composer使用第二个文件(即/var/www/concrete5/ven

在执行composer更新时,我收到以下警告:

警告:在“/var/www/concrete5/vendor/patchwork/utf8/src/Normalizer.php”和“/var/www/concrete5/vendor/voku/portable-utf8/src/Normalizer.php”中都发现了不明确的类解析“Normalizer”,将使用第一个

该站点现在遇到错误,我认为可能与此有关

如何指示composer使用第二个文件(即
/var/www/concrete5/vendor/voku/portable-utf8/src/Normalizer.php
)而不是第一个文件

请注意,我已尝试将以下内容添加到
exclude from classmap
composer.json
中,虽然它抑制了警告,但似乎没有任何影响

  "autoload-dev": {
    "psr-4": {
      "ConcreteComposer\\" : "./tests"
    },
    "exclude-from-classmap": [
        "vendor/patchwork/utf8/src/Normalizer.php"
    ]
  },

exclude from classmap
仅当classmap用于自动加载指定类时才有效。在您的情况下,类是使用PSR规则加载的,但您可以使用优化的autolader,它为所有类生成类映射:

composer install -o

另外,由于您将此规则放置在
自动加载开发
中,因此当您使用
--无开发
标志运行
composer安装
时,它将不会生效。

谢谢Rob,哦,是的
自动加载开发
肯定对我不起作用。我看到如何生成autoload_classmap.php并验证是否使用了另一个类。谢谢