致命错误:找不到使用php和composer进行简单自动加载的类

时间:2019-02-13 00:41:38

标签: php composer-php autoload

我有一个简单的设置结构,如下所示:

/lib/
    / Car/Honda.php
    / MyClass.php
/vendor/composer/
/vendor/autoload.php
/composer.json
/index.php

Composer .json就是这样

{
    "require": {},
    "autoload": {
      "psr-4": {
        "": "./lib/"
      }
    }
}

我的index.php就是这样

<?php

require_once('./vendor/autoload.php');
$new = new \Car\Honda(); // this one not found
//  $new = new MyClass() // this one works

我只是在做实验,所以没有在composer.json中添加名称空间。我确实添加了

"App\\": "lib/"

整个事情不起作用。我在这里错过了一些非常简单的事情吗?

注意:还尝试了composer dump和composer dump-autoload。而且仍然无法正常工作...

  

致命错误:未捕获错误:在中找不到类'Car \ Honda'   /var/www/html/index.php:4堆栈跟踪:#0 {main}被抛出   /var/www/html/index.php,第4行

2 个答案:

答案 0 :(得分:0)

尝试一下

"autoload": {
    "classmap": [
        "lib/"
    ],
    "psr-4": {
    }
},

答案 1 :(得分:0)

我知道了。在线上的大多数示例都像这样设置名称空间psr-4 {“ namespace //”:“ library_folder”}。

为此,我没有在composer.json文件中指定名称空间。

在您的课堂上,始终指定文件夹的名称空间。

/lib/Car/Toyota/Camry.php

namespace Car/Toyota; // this is the one missing.
class Camry {
  ...
}