автозагрузка композитора не загружает класс - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь использовать composer для автоматической загрузки класса, но он не загружается. Когда мне нужен класс, он работает, но через автозагрузку композитора он не работает. это код режима:

index.php:

require __DIR__ . "/vendor/autoload.php";

use App\Controller\HomeController;

$homeController = new HomeController();

var_dump($homeController->index());

composer.json:

{
    "autoload": {
        "psr-4": {
            "App\\" : "app/"
        }
    }
}

Класс:

<?php

namespace App\Controller;

class HomeController{

    public function index()
    {
        return 'index';
    }
}

Вот мое дерево файлов:

screen

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Ваша папка, в которой находятся контроллеры, называется Conteoller.Это то, что вызывает вашу проблему.

Это должно быть Controller.

0 голосов
/ 14 сентября 2018

Я не вижу ничего плохого в вашем коде.

Убедитесь, что вы:

  1. Дайте правильное имя для ваших файлов и папок, с учетом регистра.Проверьте еще раз, есть ли опечатка.

Эта файловая структура

app / Контроллер / HomeController.php

отличается от

app / controller / HomeController.php

или даже

app / контроллер / homeController.php

Запустите composer dump-autoload из своего терминала Все ли в вашем * .php файле уже есть <?php в верхнем коде?

composer.json

{
    "autoload": {
        "psr-4": {
            "App\\" : "app/"
        }
    }
}

(обратите внимание на прописные и строчные буквы имени файла, так как оно чувствительно к регистру)

app / Controller / HomeController.php

<?php

namespace App\Controller;

class HomeController{

    public function index()
    {
        return 'index';
    }
}

index.php

<?php

require __DIR__ . "/vendor/autoload.php";

use App\Controller\HomeController;

$homeController = new HomeController();

var_dump($homeController->index());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...