PSR-1

Материал из AOW

Перейти к: навигация, поиск

Основной стандарт написания кода

Этот включает в себя стандарты того, что следует считать стандартными элементами написания кода, которые необходимы для обеспечения высокого уровня технической интероперабельности между общим PHP кодом.

Ключевые слова "ОБЯЗАН", "НЕ ОБЯЗАН", "НЕОБХОДИМ", "ЖЕЛАТЕЛЕН", "НЕ ЖЕЛАТЕЛЕН", "ДОЛЖЕН", "НЕ ДОЛЖЕН", "РЕКОМАНДОВАН", "ВЕРОЯТЕН", и "ОПЦИОНАЛЕН" в этом документе СЛЕДУЕТ быть интерпретированы в соответствии с [RFC 2119].

[RFC 2119]: http://www.ietf.org/rfc/rfc2119.txt

1. Обзор

  • Файлы ДОЛЖНЫ использовать только тэги `<?php` и `<?=`.
  • Файлы ДОЛЖНЫ использовать только кодировку "UTF-8 без BOM" ("UTF-8 Without BOM") для PHP-кода.
  • Файлы СЛЕДУЕТ *или* объявлять символы (классы, функции, константы, и т.д.) *или* вызывать побочные эффекты (например генерировать вывод, менять настройки .ini, и т.д.), но НЕ СЛЕДУЕТ делать и то и другое.
  • Пространства имен и классы СЛЕДУЕТ следовать PSR-0.
  • Имена классов ДОЛЖНЫ определяться в StudlyCaps.
  • Константы классов ДОЛЖНЫ определяться со всеми символами в верхнем регистре с символами подчеркивания.
  • Названия методов ДОЛЖНЫ определяться в camelCase.

2. Файлы

2.1. Тэги PHP

PHP код ОБЯЗАН использовать длинный тэг `<?php ?>` или короткий тэг `<?= ?>` для маленького вывода информации; он ОБЯЗАН НЕ ИСПОЛЬЗОВАТЬ другие вариации тэгов.

2.2. Кодировка символов

PHP код ОБЯЗАН использовать кодировку UTF-8 без BOM(UTF-8 without BOM).

2.3. Побочные эффекты

Файл должен объявлять новые символы(классы, функции, константы, и т.д..) и не вызывать других побочных эфектов, или ДОЛЖЕН выполнять логику с побочными эффектами, но НЕ ДОЛЖЕН делать оба.

Фраза "побочный эффект" означает выполнение логики, которая не относится напрямую к объявлению классов, функций, констант, и т.д. *простое подключение из файлов

"Побочный эффект" включает, но не ограничивается: генерацией вывода, явное использование `require` или `include`, подключение к внешним сервисами, модификация настроек ini, выдавать ошибки или исключения, изменять глобальные или статичные переменные, чтение или запись в файл, и т.д.

Ниже представлен пример файла вместе и с декларацией и с побочными эффектами; этот код является примером того, чего следует избегать(код является неправильным):

   <?php
   // Побочный эффект: изменение настроек ini
   ini_set('error_reporting', E_ALL);
   // Побочный эффект: загрузка файла
   include "file.php";
   // Побочный эффект: генерация вывода
   echo "<html>\n";
   // Объявление функции
   function foo()
   {
       // тело функции
   }

Следующий пример файла, который содержит объявление без побочных эффектов; этот код является правильным;

   <?php
   // Объявление функции
   function foo()
   {
       // Тело функциии
   }

// Условное объявление *не является* побочным эффектом

   if (! function_exists('bar'))
   {
       function bar()
       {
           //Тело функции
       }
   }

3. Пространства имен и названия классов

Пространства имен и классы ДОЛЖНЫ следовать PSR-0. Это значит, что каждый класс - это файл, не больше, не меньше, и в пространстве имен, как минимум один уровень: верхний уровень наименование производителя. Названия классов ДОЛЖНЫ быть объявленными в `StudlyCaps`.

Код написанный для PHP 5.3 и выше ОБЯЗАН использовать формальные пространства имен.

Например:

   <?php
   // PHP 5.3 и выше:
   namespace Vendor\Model;
   class Foo
   {
   }

Код написанный для PHP 5.2.x и ниже ДОЛЖЕН использовать псевдо конвенцию пространств имен, начиная с `Наименования_Производителя_` в названиях классов.

   <?php
   // PHP 5.2.x и ниже:
   class Vendor_Model_Foo
   {
   }

4. Константы Классов, Свойства, и Методы

Термин класс относится, ко всем классам, интерфейсам и трэйтам.

4.1. Константы

Константы Классов ДОЛЖНЫ быть объявленными символами верхнего регистра вместе с разделителями(символами подчеркивания).

Например:

   <?php
   namespace Vendor\Model;
   class Foo
   {
       const VERSION = '1.0';
       const DATE_APPROVED = '2012-06-01';
   }

4.2. Свойства

Это руководство намеренно избегает рекомендаций относительно использования $StudlyCaps, $camelCase, или $under_score в названиях свойств.

Как бы то ни было, используемый стандарт именования ДОЛЖЕН применяться последовательно в разумных пределах. Этот предел может быть установлен на уровне производителя, пакета, Класса, или метода.

4.3. Методы

Названия Методов ДОЛЖНЫ быть объявлены в camelCase().

Источник — «http://doc.artofweb.ru/doc/PSR-1»
Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru