ПСР-2. Когда следует использовать каталоги с большой буквы?


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

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

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

Правильна ли эта структура?

Author: ymakux, 2015-08-04

2 answers

Вы можете называть свои каталоги так, как вам нравится.

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

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

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

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

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

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

 4
Author: Sven, 2015-08-04 19:08:32

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

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

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

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

 1
Author: Diego Fu, 2015-08-04 18:45:16