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

Я сделал тестовый проект, чтобы понять, как работает композитор и упаковщик.Проект также находится на packagist .

Простой composer require rakibtg/gowin установит пакет из packagist.

Но по какой-то причине пространство имен не работает должным образом.

Вот моя структура каталогов и файл композитора.enter image description here

Вот файл GoWin.php:

  <?php

  namespace GoWin;

  class GoWin {
    public function serve() {
      echo 'Lets Win Everybody!';
    }
  }

Вот файл test.php, где я пытаюсь использовать метод serve()из класса GoWin.

  <?php

  require_once './vendor/autoload.php';

  // use GoWin;

  ( new GoWin\GoWin() )->serve();

Но он не может выполнить метод serve с этой ошибкой:

Неустранимая ошибка: Uncaught Ошибка: Класс 'GoWin \ GoWin'не найден в

/ Users / usr / Desktop / t estGoWin / index.php: 7 Трассировка стека:

0 {main}, брошенный в / Users / usr / Desktop / testGoWin / index.php на линии 7

В данный момент я не могу понять, что мне не хватает!Также я должен использовать PSR-0 или PSR-4?

1 Ответ

0 голосов
/ 25 апреля 2018

Я решил это, переключившись на PSR-4, просто обновив свойство composer.json autolaod следующим образом:

"autoload": {
    "psr-4": {
        "GoWin\\": "src/"
    }
},
...