我有一个简单的设置结构,如下所示:
/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行
答案 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 {
...
}