@cheremsha11

Как в composer.json указать полный путь до класса?

Пример:
Есть глобальный класс Test в папке vendor/mylib/Test.php
В vendor/mylib/composer.json указал
"autoload": {
    "psr-4": {
      "Test": "/Test.php"
    }
  },

но класс "Test" не найден после генерации автозагрузчика Composer
  • Вопрос задан
  • 370 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Потому что / это абсолютный путь от корня системы
Плюс Test - это namespace, а не класс. И на выходе будет Test/Test, а не просто Test

Чтобы просто классы прописать надо делать что-то вроде
"autoload": {
    "psr-4": {
      "": "src/"
    }
  },


или

"autoload": {
    "classmap": ["src/"]
}


Но лучше так не делать, неймспейсы не просто-то так существуют.
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега PHP
Добрый день.
В composer.json указывайте путь, где располагаются файлы, а в самих файлах пишите namespace.
Например, есть директория core, где располагается класс Test.php.
Директория core и composer.json находятся на одном уровне.
Значит, в composer.json указываете
"autoload": {
      "psr-4": {
         "app\\": ""
       }
 }

В классе Test.php указываете namespace
namespace app\core;
class Test
{
  //******
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы