вторник, 24 сентября 2013 г.

Стандарты программирования на PHP. PSR-1 basic-coding-standard

Основные стандарты кодирования.

1. Обзор

  • В файлах должны использоваться только  <?php  и  <?=  теги.
  • Для php-кода должна использоваться только кодировка UTF-8 без BOM
  • В файлах можно либо объявлять элементы (классы, функции, константы и т.п.), либо вызываться побочные эффекты ( генерация вывода, изменение ini-файла и т.п.), но не и то и другое.
  • Пространства имен и классы должны следовать PSR-0.
  • Имена классов должны оформляться в стиле StudlyCaps
  • Названия констант класса должны оформляться заглавными буквами с разделителем в виде нижнего подчеркивания.
  • Имена методов должны оформляться в стиле CamelCaps



2. Файлы

2.1 PHP-теги

В php-коде должны использоваться длинные  (<?php ?>) или короткие short-echo (<?= ?>) теги. Другие вариации недопустимы.

2.2 Кодировка

Файл с php-кодом должен быть только в кодировке UTF-8 without BOM.

2.3 Сторонние действия (side effects)

  • В файле либо объявляются конструкции (Классы, константы, методы и т.п.), либо используются. Объявлять и использовать в одно файле нельзя.
  • Словосочетание "сторонние действия" подразумевает выполнение логики не связанной с объявлением констант, классов, функций и т.п.
  • Сторонние действия это, как правило: генерация вывода, использование include и require, подключение к внешним сервисам, изменение настроек ini-файлов, обработку ошибок и исключений, модификация глобальных или статичный переменных, чтение или запись в файл и тому подобное.

Пример использования сторонних действий и объявлений. Пример того, как делать нельзя:

<?php
// стороннее действие: модификация ini-файла
ini_set('error_reporting', E_ALL);

// стороннеее действие: подгрузка файла
include "file.php";

// стороннее действие: вывод
echo "<html>\n";

// declaration
function foo()
{
    // тело функции
}
?> 

Следующий пример использования объявлений без сторонних действий. Такому примеру следует подражать:

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

// условное выражение это НЕ стороннее действие
if (! function_exists('bar')) {
    function bar()
    {
        // тело функции
    }
}
?>

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

  • Пространства имен и классы должны соответствовать PSR-0
  • Это значит, каждый класс в своем файле.
  • Имена классов должны оформляться в стиле StudlyCaps
  • Код, написанный под PHP 5.3 и поздних версий, должен использовать формальные пространства имен. Например:
<?php
// PHP 5.3 and later:
namespace Vendor\Model;

class Foo
{
}
?>
 
 
Тогда как код под PHP 5.2 и ранних версий должен был использовать псевдо-пространство именной префикс в именах классов:
<?php
// PHP 5.2.x and earlier:
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()

Комментариев нет:

Отправить комментарий