Неустранимая ошибка: класс не найден простой автозагрузкой с php и composer - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть простая структура настройки, подобная этой:

/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 \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

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я понял это.В большинстве примеров он-лайн устанавливает пространство имен psr-4 {"namespace //": "library_folder"} примерно так.

Для этого я не указал пространство имен в файле composer.json.

В вашем классе всегда указывайте пространство имен папки.

/lib/Car/Toyota/Camry.php

namespace Car/Toyota; // this is the one missing.
class Camry {
  ...
}
0 голосов
/ 13 февраля 2019

Попробуйте это

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