首页 > 解决方案 > 如何避免 Composer 出现“无法扫描内部的类”错误?

问题描述

(我知道其他人已经写过这个,但在这种情况下答案似乎没有帮助)

我有一个 WordPress PHP 插件(https://github.com/LiquidChurch/lqd-messages/),它使用WDS-Shortcodes反过来使用TGM-Plugin-Activation。当我composer install从 lqd-messages 插件中运行时,我收到以下错误:

在 ClassMapGenerator.php 第 69 行:

无法扫描“ /lqd-messages/vendor/webdevstudios/wds-shortcodes/vendor/tgmpa/tgm-plugin-activation/class-tgm-plugin-activation.php”中似乎不是文件或文件夹的类

然后我可以进入/lqd-messages/vendor/webdevstudios/wds-shortcodes/vendor并查看没有 tgmpa 文件夹。

如果我然后返回/wds-shortcodes并运行composer install,将成功创建 tgmpa 文件夹。

显然,这不太理想。有没有办法绕过这些额外的步骤?

标签: phpwordpresscomposer-php

解决方案


这是webdevstudios/wds-shortcodes包中的错误 - 它们的自动加载设置不正确。依赖项不应声明从vendor目录内的其他依赖项加载文件-这不是他们关心的问题(并且这些文件在某些​​情况下不存在,例如您的情况)。

我只能建议分叉这个包并修复自动加载设置:

"autoload": {
    "classmap": ["includes/"]
},

顺便说一句:你在你的包中犯了同样的错误。


推荐阅读