@Vasiliy_M

Нужно ли указывать имя_поставщика/имя_пакета при создании пакета?

Заблудился в трех соснах, хотя думал что все знаю.

Когда изучал композер, смотрел пакеты сторонних разработчиков на packagist.org и заметил тенденцию, что пакеты именуются как имя_поставщика/имя_пакета:
"autoload-dev": {
        "psr-4": {
            "Vendor\\Library\\": "src"
        }
    },

что казалось мне вполне логично - у поставщика может быть много пакетов.

Сейчас PSR-4 перечитал и удивился - оказывается, нигде такого требования нет - указывать именно такую нотацию:
Полностью определённое имя класса должно иметь следующую структуру: \<ПространствоИмён>(\<ПодпространствоИмён>)*\<ИмяКласса>
- грубо говоря, стандарт требует лишь указания Поставщика в <ПространствоИмён>, а какое <ПодпространствоИмён> будет - никого не волнует.

Посмотрел исходники yii и не понял - как им удалось добиться того, что они используют единое пространство имен высшего уровня - yii, хотя, в app-base composer.json у них
"require": {
        "yiisoft/yii2": "~2.0.6",
        "yiisoft/yii2-bootstrap": "~2.0.0",
        "yiisoft/yii2-swiftmailer": "~2.0.0 || ~2.1.0"
    },

т.е. в коде use должно быть yiisoft/yii22, а у них просто use yii

Как они этого добились и почему это идет в разрез с идеологией композера?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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