如何让 Laravel 在搜索 class 时忽略文件路径?

How to get Laravel to ignore filepaths when searching for a class?

我正在为 laravel 开发一个包,应用程序开发人员需要完成一些代码(将他们的模型映射到我的包的模型)。

我想将我的包文件夹中的一些模型模板发布到 App 文件夹中,以方便应用程序开发人员的工作。

但是即使已发布的文件相应地填充到 App 文件夹中(在 \app\Integration\myPackageName\Mapping 中),Laravel 也会尝试使用我的包文件夹中未填充的文件(\packages\my\package\src\Mapping\Publishables),这显然会导致错误。

有没有办法让 Laravel 在搜索 类 时忽略文件夹?或者我只是没有使用正确的方法来做我想做的事情?

您可以在 composer.json.

中将 类 从类映射中排除,如下所示
{
    "autoload": {
        "exclude-from-classmap": ["/Tests/", "/test/", "/tests/"]
    }
}

可以在 composer 的文档章节中找到更多信息

这将防止 Laravel 中的错误消息。

使用此技术(如您的情况)来打包具有无效 PSR-0/4 名称空间的 类 是 不好的做法