Laravel 在自定义文件夹中自动加载 类

Laravel autoloading classes within custom folders

我有一个项目需要完成,所以我在创建新的 classes

时不再需要 运行 composer dump-autoload

该项目有这样的自定义文件夹 App\Features App\Concerns

我进入了 composer.json,并将最后一个条目添加到以下内容:

"classmap": [
  "database/seeds",
  "database/factories",
  "app/Features"
],

然后我运行下面的命令

php artisan clear-compiled composer dump-autoload php artisan optimize

然后我继续在名为 TestFeature.php 的功能中创建了一个新的 class,它有一个静态函数,它简单地打印出它有效

我尝试在没有 composer dump-autoload 的情况下执行此操作,但它抛出一个错误,指出找不到 class。

在自定义文件夹中自动加载 classes 的最佳方法是什么?

谢谢

恐怕您为此使用了不正确的密钥 classmap。你应该使用 psr-4.

例如:

"autoload": {
    "psr-4": {
        "App\": "app/",
        "Features\": "app/Features/"
    },
    "classmap": [ ... ]
},

然后 运行 composer dump-auto.

P.S。将 Features 文件夹放在 app 文件夹下有点奇怪;因为 app 已经映射到 App