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

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

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

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

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

2 ответа

Решение

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

Однако, если вы намереваетесь автоматически загружать свои классы 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, и я считаю, что использование строчных букв необычно.

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

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

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

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

Другие вопросы по тегам