Разрешение конфликтов пространств имён.

AnrDaemon

Продвинутый новичок
Потихоньку скидываю старые проекты, пишу новый код под неймспейсы.
И вот такой меня мучает вопрос. Как в PHP сообществе обстоит дело с разрешением конфликтов?
Побегал по разным источникам, практически везде используется "namespace Проект\Модуль\…".
Что если название моего проекта ВНЕЗАПНО совпадёт с чьим-нибудь ещё?
В яве всё как-то прозрачно, имена строятся от твоего домена, который обычно уникален.
 

fixxxer

К.О.
Партнер клуба
Не проект, а вендор.

PSR-4:
A fully qualified class name has the following form:

\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
The fully qualified class name MUST have a top-level namespace name, also known as a "vendor namespace".
То есть не \ProjectName, а \CompanyName\ProjectName.

Если это личный проект, вместо CompanyName вполне подойдет username на гитхабе.
 

AnrDaemon

Продвинутый новичок
Именно это я и имел в виду под "конфликтом имён". На гитхабе свет клином не сошёлся.
 

fixxxer

К.О.
Партнер клуба
Правило про гитхаб нигде не сформулировано, но вполне используется де-факто. По крайней мере, это разумно - практически у всех есть логин на гитхабе :)

Если не нравится с гитхабом - можно использовать username на packagist. Хотя они обычно совпадают :)
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Завтра руководство гитхаба поссорится/сменится, гитхаб загнётся… Ваши действия?
(И не говорите мне, что этого не может быть. Только на моей памяти подобное случалось минимум дважды.)
 

fixxxer

К.О.
Партнер клуба
Да никаких действий. От этого сразу не начнут появляться еще 10 AnrDaemon-ов внезапно.

100% гарантию отсутствия коллизий тебе не даст даже джавовский подход. Допустим, компания загнулась, домен проэкспайрился, его купили сквоттеры и кому-то продали. :)
 
Сверху