我有一个简单的设置结构,如下所示:
/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中引发
试试这个
"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 {
...
}