致命错误:找不到使用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容器。