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

问题描述 投票:-1回答:2

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

/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。仍然没有工作是什么给...

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

php composer-php autoload
2个回答
0
投票

试试这个

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

0
投票

我想到了。大多数在线示例,如此设置名称空间psr-4 {“namespace //”:“library_folder”}。

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

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

/lib/Car/Toyota/Camry.php

namespace Car/Toyota; // this is the one missing.
class Camry {
  ...
}
© www.soinside.com 2019 - 2024. All rights reserved.