php-fig
Время для прочтения: 0 мин. 57 сек.

Рекомендации к стандартам оформления кода на PHP

PSR (Proposing a Standards Recommendation) рекомендации к стандартам оформления кода на PHP, принятые группой совместимости фреймворков PHP-FIG (Framework Interoperability Group). Сводную таблицу смотрите по ссылке PHP Coding Style Notes.

На данный момент стандарт PSR состоит из четырёх разделов.

PSR-0

Стандарт описывает именование классов в пространствах имен (namespace) для их автозагрузки.

  • Имя класса должно содержать путь к файлу с описанием класса.

В общем виде это выглядит так:

\Поставщик\(Пространство имен)*\Имя класса

Например:

\Doctrine\Common\ClassLoader => /lib/vendor/Doctrine/Common/ClassLoader.php
\Symfony\Core\Request => /lib/vendor/Symfony/Core/Request.php
\Zend\Acl => /lib/vendor/Zend/Acl.php
\Zend\Mail\Message => /lib/vendor/Zend/Mail/Message.php
\namespace\package\Class_Name => /lib/vendor/namespace/package/Class/Name.php

Символ _ в имени класса конвертируется в DIRECTORY_SEPARATOR (разделитель директорий).

PSR-1

Стандарт описывает общие правила оформления кода.

  • Использование только тэгов <?php и <?
  • Кодировка только UTF-8 без BOM для PHP кода
  • Пространства имен и классы должны соответствовать PSR-0
  • Запрещено смешивать в одном файле классов, функций, констант, настроек (ini_set) и конструкций языка (echo)
  • Классы именуются в стиле StudlyCaps
  • Константы пишутся в верхнем регистре. В качестве разделителя между слов используется знак подчеркивания
  • Методы именуются в стиле camelCase

PSR-2

Стандарт более подробно раскрывает оформление кода.

  • Строгое следование PSR-1
  • В качестве отступов использовать 4 пробела вместо табуляции
  • Длина строки с кодом 80-120 символов
  • Обязательным условием является наличие пустой строки после дериктив use и namespace
  • Открывающая фигурная скобка при объявлении класса или функции должня быть на новой строке, а закрывающая — на новой строке после тела класса или функции
  • Область видимости (public/protected/private) необходимо объявлять у всех свойств и методов класса; abstract и final объявлять перед областью видимости; static — после нее
  • Разделять пробелом управляющие конструкции (if/elseif/while/for/foraech/try-catch) и скобку. Пробелы между круглыми скобками и их содержимым не допустимы. Открывающая фигурная скобка должна быть в конце строки

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

1 комментарий

по хронологии
по рейтингу сначала новые по хронологии

I'll try to put this to good use immdeiately.