Laravel 供应商自动加载不起作用

Posted

技术标签:

【中文标题】Laravel 供应商自动加载不起作用【英文标题】:Laravel vendor autoloading doesn't work 【发布时间】:2016-02-08 10:48:38 【问题描述】:

目前,我是包开发的新手,很难创建新包。至此,我想制作一个新包,但自动加载(PSR-4 和类映射)似乎不起作用。我得到类未找到异常。我试图到处寻找我的问题的答案,但仍然没有找到任何帮助。

这是我的 composer.json 文件:

 
  "name": "imamassi/tree",
  "description": "Tree generator from an array/object with parent id",
  "license": "MIT",
  "authors": [
    
      "name": "Imam Assidiqqi",
      "email": "assidiqqi.imam@gmail.com"
    
  ],
  "minimum-stability": "dev",
  "require": ,
  "autoload":
    "psr-4":
      "Imamassi\\": "src/"
    ,
    "classmap":["src/"]
  

我的包目录:

我已经花了几个小时才弄清楚如何完成这项工作,希望我能在这里找到答案:)

注意:我已经做了几次dump-autoload,仍然无法完成这项工作。

【问题讨论】:

【参考方案1】:

自动加载路径必须指向使用命名空间的确切目录。

这意味着你的composer.json

"autoload": 
    "psr-4": 
        "Imamassi\\": "src/Imamassi"
    
 

更改主composer.json的自动加载部分后,不要忘记通过以下方式重建自动加载缓存:

composer dump-autoload

【讨论】:

但我想加载 Tree.php (src/tree.php) 文件 这将加载该目录中具有此命名空间的每个类。

以上是关于Laravel 供应商自动加载不起作用的主要内容,如果未能解决你的问题,请参考以下文章

缺少 Laravel 供应商/自动加载

laravel 4 中的自动加载助手

Composer PHP自动加载不起作用

在 Laravel 7 中自动加载自定义包

CodeIgniter 中分页的自动加载配置不起作用

Composer 和 Linux 生产服务器 - 自动加载不起作用