Правильная структура для библиотек github

Я написал cURL-класс, которым хотел поделиться на github, а также сделать доступным через composer. Я успешно поставил свою библиотеку на github https://github.com/tzfrs/SimpleCurl, но у меня все еще есть проблемы с пониманием правильной структуры папок.

У меня сейчас так:

  • Git-репозиторий называется "SimpleCurl"
  • Хранилище содержит папку с именем src/
  • src/ в папке есть файл SimpleCurl.php какой класс SimpleCurl
  • SimpleCurl класс, однако, находится в пространстве имен tzfrs/Util/
  • Файл composer.json содержит следующую информацию

"autoload": {
"psr-4": {
"tzfrs\\Util\\": "src/"}
}

Теперь моя проблема понимания: это нормально, что SimpleCurl.php-файл лежит прямо в папке src/? Или это должно быть в папке src/tzfrs/Util в этом репозитории git?

Другими словами, могу ли я поместить имя поставщика и основное пространство имен как структуру папок в мои проекты? Или я бы только поместил имена подпространств в файл?

Как пример: скажем, мой класс SimpleCurl не в пространстве имен tzfrs/Util/ но в пространстве имен tzfrs/Util/Curl

Нужно ли мне добавить пространство имен Curl в качестве папки в папку src, так как это имя пространства имен?

0

Решение

Если ваша библиотека следует PSR-4, то все в порядке, если SimpleCurl.php находится внутри «src», используя эту конфигурацию автозагрузки. Нет необходимости копировать пространство имен как структуру папок, это то, что вы можете видеть во многих библиотеках PSR-0, но PSR-0 устарела.

Если вы хотите иметь класс SimpleCurl в пространстве имен tzfrs\Util\Curl, тогда вам нужно только создать папку с именем Curl это должно содержать ваш SimpleCurl.php, Все в src будет добавлен к вашему префиксу, который вы определили как tzfrs\Util,

Посмотрите на Битва автозагрузчиков: PSR-0 против PSR-4.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]