首页 > 解决方案 > Laravel 在自定义文件夹中自动加载类

问题描述

我有一个项目并且需要制作它,因此在创建新类时我不再需要运行 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

然后我继续在 Features 中创建了一个名为 TestFeature.php 的新类,它带有一个静态函数,可以简单地打印出它的工作原理

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

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

谢谢

标签: laravellaravel-5composer-phppsr-4

解决方案


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

例如:

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

然后运行composer dump-auto

PS把Features文件夹放在文件夹下app有点奇怪;因为app已经映射到App.


推荐阅读