我有一个简单的设置结构,如下所示:
/lib/
/ Car/Honda.php
/ MyClass.php
/vendor/composer/
/vendor/autoload.php
/composer.json
/index.php
json就像
{
"require": {},
"autoload": {
"psr-4": {
"": "./lib/"
}
}
}
我的index.php是这样
<?php
require_once('./vendor/autoload.php');
$new = new CarHonda(); // this one not found
// $new = new MyClass() // this one works
我没有在composer.json中添加名称空间,因为我只是在试验。我确实添加了
"App\": "lib/"
整件事不起作用。我是不是错过了一些简单的东西???
注意:还尝试了composer dump和composer转储自动加载。但仍然没有发挥作用。。。
致命错误:未捕获错误:在中找不到类别"Car\Honda"/var/www/html/index.php:4堆栈跟踪:#0{main}抛出/第4行上的var/www/html/index.php
我想明白了。大多数联机示例都是这样设置名称空间psr-4{"namespace//":"library_folder"}。
对于这个,我没有在composer.json文件中指定名称空间。
在类中,始终指定文件夹的命名空间。
/lib/Car/Toyota/Camry.php
namespace Car/Toyota; // this is the one missing.
class Camry {
...
}
试试这个
"autoload": {
"classmap": [
"lib/"
],
"psr-4": {
}
},