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';
}
?>
Комментариев нет:
Отправить комментарий