PSR-2. Когда использовать заглавные буквы в каталогах?

Как я понял в соответствии со стандартом PSR-2, мы должны использовать имена каталогов, содержащие классы. Но как это сделать, если каталог также содержит некоторые другие файлы, например стили и скрипты?

Скажем, у меня есть каталог плагинов, каждый плагин может содержать шаблоны и другие вещи:

plugins
PluginName // lowercase?
PluginName.php // Contains base class "PluginName"templates
home.tpl
css
css.css
js
js.js
PluginName2
....

Это правильная структура?

4

Решение

Вы можете назвать ваши каталоги как угодно.

Однако, если вы намереваетесь автоматически загружать ваши классы PHP с помощью PSR-0 или PSR-4, имена каталогов, которых касается соответствующая часть имени класса, должны точно совпадать.

PSR-2 не делает никаких предположений или не дает и не определяет правила, по которым должен иметься имя класса или пространство имен.

PSR-1 заявляет в Глава 3: «Имена классов ДОЛЖНЫ быть объявлены в StudlyCaps.» Это, однако, влияет только на имя файла, содержащего такой класс. Если вы используете автозагрузку PSR-4, вы можете по-прежнему избегать использования какой-либо части пространства имен вообще в пути, если вы определяете целую карту Name\Space -> directory/for/that/namespace для каждого каталога, который содержит код.

PSR-1 не имеет каких-либо правил форматирования пространства имен, поэтому вы также можете избегать использования там заглавных букв и, следовательно, избегать использования заглавных букв в пути к каталогу.

Обратите внимание, что автозагрузка PSR-0 и PSR-4 чувствительна к регистру, когда речь идет о сопоставлении пространства имен / имени класса с путем и файлом файловой системы. Таким образом, в конце концов, вы все равно получите чувствительную к регистру компоновку файловой системы.

Также обратите внимание, что большинство пространств имен также используют StudlyCaps, и я считаю, что использование строчных букв необычно.

4

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

Не существует четко определенного способа, каким должна быть структура в PHP.

Я даже не думаю, что имена каталогов должны быть заглавными.

Однако может ли плагин или любые зависимости обрабатываться любым менеджером пакетов (Композитор)?

Из того, что я могу сказать, ваша структура выглядит отлично.

1

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