composer.json Минимальный пример манифеста для проекта -- пакета (репозитория). Для автозагрузки по PSR-4
Primary tabs
Что должно быть в используемом пакете
Минимальные сведения о пакете могут выглядеть так:
{
"name": "it-for-free/php-examples",
"type": "php-class",
"description": "Simple example of php view -- MVC, пример реализации представляения, отделения php от html",
"keywords": ["php", "itforfree", "mvc", "view", "html"],
"homepage": "ссылкаНаДомашнююСтраницу",
"autoload": {
"psr-4": {
"ItForFree\\PhpExamples\\": ""
}
}
}
-- файл composer.json с подобным содержимым должен лежать в корне вашего пакета, как это сделано например здесь.
Что есть что
В приведённом выше примере:
-
"name": "it-for-free/php-examples",
-- есть имя пакета, где в первой части обычно указывают команду или создателя, а в правой (после слэша -- название).
- Далее идут не особо важные поле, описывающие пакет, самое же интресное начинается в секции:
"autoload": { "psr-4": { "ItForFree\\PhpExamples\\": "" } }-- тут показано, что загружать данные из проекта мы будем по стандарту PSR-4 И указано пространство имён, которое будет соответствовать корневой папке пакета:
"ItForFree\\PhpExamples\\": ""
(в нашем примере корневой -- поэтому внутри кавычек ничего нет).
Это значит, что все пространства имен в нашем пакете, как ожидается будут начинаться со строки:ItForFree\PhpExamples
-- а точнее:
Если автозагрузчик композера, встретит ещё не изветсный класс, у которого имя пространства будет начинаться на, то он попытывает загрузить его именно из папки (в общем случае):vendor/имя-разработчика/имя-пакета
-- т.е. из той папки, куда разместит наш пакет при выполнении команды
Можно почитать подробнее о назначении базовой директории.
- Log in to post comments
- 5285 reads