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

致命错误:找不到使用php和composer自动加载的简单类,php,composer-php,autoload,Php,Composer Php,Autoload,我有一个简单的设置结构,如下所示: /lib/ / Car/Honda.php / MyClass.php /vendor/composer/ /vendor/autoload.php /composer.json /index.php json就是这样 { "require": {}, "autoload": { "psr-4": { "": "./lib/" } } } <?php require_o

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

/lib/
    / Car/Honda.php
    / MyClass.php
/vendor/composer/
/vendor/autoload.php
/composer.json
/index.php
json就是这样

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

require_once('./vendor/autoload.php');
$new = new \Car\Honda(); // this one not found
//  $new = new MyClass() // this one works
我的index.php是这样的

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

require_once('./vendor/autoload.php');
$new = new \Car\Honda(); // this one not found
//  $new = new MyClass() // this one works
整件事都不管用。我是不是错过了一些很简单的东西

注意:还尝试了编写器转储和编写器转储自动加载。但仍然不工作给

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

试试这个

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

我想出来了。大多数联机示例都将名称空间psr-4{“namespace/”:“library_folder”}设置为这样

对于这一个,我没有在composer.json文件中指定名称空间

在类中,始终指定文件夹的命名空间

/lib/Car/Toyota/Camry.php

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

您确定“vendor”文件夹中存在autoload.php吗?@gopi,是的,vendor文件夹中有/composer/和/autoload.php。所以我不明白。它适用于/lib/中的MyClass.php,但不适用于/Car/Honda.php。您还可以包含准确的错误语句吗?@Gopi error添加。使用“autoload”:{“classmap”:[“lib”],“psr-4”:{`呃仍然不工作。我复制了这个,仍然得到相同的错误。然后使用“psr-4”:{“:“lib/”}还是不行。顺便说一下,如果有什么不同的话,我正在运行一个docker容器。