Я написал cURL-класс, которым хотел поделиться на github, а также сделать доступным через composer. Я успешно поставил свою библиотеку на github https://github.com/tzfrs/SimpleCurl, но у меня все еще есть проблемы с пониманием правильной структуры папок.
У меня сейчас так:
"SimpleCurl"
src/
src/
в папке есть файл SimpleCurl.php
какой класс SimpleCurl
SimpleCurl
класс, однако, находится в пространстве имен tzfrs/Util/
"autoload": {
"psr-4": {
"tzfrs\\Util\\": "src/"}
}
Теперь моя проблема понимания: это нормально, что SimpleCurl.php
-файл лежит прямо в папке src/
? Или это должно быть в папке src/tzfrs/Util
в этом репозитории git?
Другими словами, могу ли я поместить имя поставщика и основное пространство имен как структуру папок в мои проекты? Или я бы только поместил имена подпространств в файл?
Как пример: скажем, мой класс SimpleCurl
не в пространстве имен tzfrs/Util/
но в пространстве имен tzfrs/Util/Curl
Нужно ли мне добавить пространство имен Curl
в качестве папки в папку src, так как это имя пространства имен?
Если ваша библиотека следует PSR-4, то все в порядке, если SimpleCurl.php находится внутри «src», используя эту конфигурацию автозагрузки. Нет необходимости копировать пространство имен как структуру папок, это то, что вы можете видеть во многих библиотеках PSR-0, но PSR-0 устарела.
Если вы хотите иметь класс SimpleCurl
в пространстве имен tzfrs\Util\Curl
, тогда вам нужно только создать папку с именем Curl
это должно содержать ваш SimpleCurl.php
, Все в src
будет добавлен к вашему префиксу, который вы определили как tzfrs\Util
,
Посмотрите на Битва автозагрузчиков: PSR-0 против PSR-4.
Других решений пока нет …