|
|||||||
PSR-1 – Базовый стандарт оформления кода
Время создания: 13.04.2017 16:59
Текстовые метки: php, psr, psr-1, psr1, psr 1, стандарт
Раздел: Компьютер - Программирование - Язык PHP
Запись: xintrea/mytetra_syncro/master/base/14920919741xmvb9a2wp/text.html на raw.github.com
|
|||||||
|
|||||||
PSR-1 – Базовый стандарт оформления кода Данный раздел описывает стандартные элементы, являющиеся существенными для обеспечения высокой технической совместимости кода, созданного и/или поддерживаемого различными разработчиками. Слова «НЕОБХОДИМО» / «ДОЛЖНО» («MUST»), «НЕДОПУСТИМО» («MUST NOT»), «ТРЕБУЕТСЯ» («REQUIRED»), «НУЖНО» («SHALL»), «НЕ ПОЗВОЛЯЕТСЯ» («SHALL NOT»), «СЛЕДУЕТ» («SHOULD»), «НЕ СЛЕДУЕТ» («SHOULD NOT»), «РЕКОМЕНДУЕТСЯ» («RECOMMENDED»), «МОЖЕТ» / «ВОЗМОЖНО» («MAY») и «НЕОБЯЗАТЕЛЬНО» («OPTIONAL») в этом документе следует понимать так, как это описано в RFC 2119 (и его переводе). 1. Общие положения
2. Файлы 2.1. PHP-теги PHP-код ОБЯЗАТЕЛЬНО следует заключать в полную версию (<?php ?>) тегов или укороченную (сокращённую запись echo) версию (<?= ?>) тегов и НЕДОПУСТИМО заключать ни в какие иные разновидности тегов. 2.2. Кодировка символов PHP-код ДОЛЖЕН быть представлен только в кодировке UTF-8 без BOM-байта. 2.3. Побочные эффекты В файлах СЛЕДУЕТ либо объявлять структуры (классы, функции, константы и т.п.) и не создавать побочных эффектов (например: передавать данные в выходной поток, модифицировать настройки и т.п.), либо реализовывать логику, порождающую побочные эффекты, но НЕ СЛЕДУЕТ делать одновременно и то, и другое. Под «побочными эффектами» понимается реализация логики, не связанной с объявлением классов, функций, констант и т.п. – даже подключение внешнего файла уже является «побочным эффектом». «Побочные эффекты» включают (но не ограничиваются этим перечнем): передачу данных в выходной поток, явное использование require или include, изменение настроек, генерирование ошибочных ситуаций или порождение исключений, изменение глобальных или локальных переменных, чтение из файла или запись в файл и т.п. Ниже представлен пример файла, содержащий в себе как объявления структур, так и порождение побочных эффектов, т.е. ситуации, которой стоит избегать: <?php // побочный эффект: изменение настроек ini_set('error_reporting', E_ALL);
// побочный эффект: подключение файла include "file.php";
// побочный эффект: передача данных в выходной поток echo "\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 и ниже, СЛЕДУЕТ при именовании классов соблюдать соглашение о псевдопространствах имён с префиксом в виде имени производителя (Vendor_): <?php
// PHP 5.2.x и ранее: class Vendor_Model_Foo { } 4. Константы, свойства и методы классов Здесь под «классом» следует понимать также интерфейсы (interface) и примеси (trait). 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» (первое слово пишется в нижнем регистре, далее каждое слово начинается с большой буквы, а между словами нет разделителей). |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|