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

时间:2019-07-25 14:11:57

标签: laravel laravel-5 composer-php psr-4

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

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

我尝试在没有作曲家dump-autoload的情况下执行此操作,但是它抛出错误,提示找不到该类。

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

谢谢

1 个答案:

答案 0 :(得分:0)

恐怕您为此使用了错误的密钥classmap。您应该使用psr-4

例如:

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

然后运行composer dump-auto

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