Категории

Стандарты Кода

Типы файлов и кодировка

Все файлы PHP, за исключением файлов `view/template`, имеют расширение `.php`

Все файлы `view/template` имеют расширение `.twig`

Переводы строк обрабатываются автоматически Git, управление репозиторием осуществляется с помощью LF. При клонировании все переводы строк будут автоматически преобразованы в Вашу родную среду (CRLF для Windows, LF для Mac/Linux).

Теги PHP

Короткие открывающие теги PHP и ASP-теги не поддерживаются. Символы должны быть строчными.

<?php

Все файлы PHP должны включать закрывающий тег для версий до 2.0. Файлы PHP в версии 2.0 и выше больше не будут иметь закрывающего тега.

?\>

Отступы

Файлы PHP должны иметь отступ с помощью символа TAB. 4 пробела не поддерживаются.

HTML в файлах шаблонов (.twig) должен иметь отступ с использованием 2 пробелов, а не 4 пробелов или TABS. JavaScript должен иметь отступ с использованием символа TAB.

Интервал

IF, WHILE, FOR и т.д. должны иметь пробел до и после скобок.

Правильный: if () {

Неправильный: if(){

ELSE и т.д. должны иметь пробел после и до фигурных скобок

Правильный: } else {

Неправильный: }else{

Приведение типов НЕ имеет пробела перед переменной

Правильный: (int)$var

Неправильный: (int) $var

Установка переменной всегда должна иметь пробел до и после знака равенства

Правильный: $var = 1;

Неправильный: $var=1;

Пробелы

После любого кода, но перед новой строкой - не должно быть пробелов. То же самое верно для пустой строки.

После закрывающего тега PHP крайне важно удалить пробелы.

Новые Строки

Открывающиеся фигурные скобки не переходят на новую строку, они всегда будут иметь пробел и будут на одной строке.

1 True Brace Style (1TBS)

Правильный:

if ($my_example == 1) { class ModelExampleExample extends Model { public function addExample() { } else {

Неправильный:

if ($my_example == 1) { class ModelExampleExample extends Model { public function addExample() { } else {

Именование файла

Все файлы должны быть в нижнем регистре и слова должны быть разделены подчеркиванием.

Именование класса и метода

Имена классов и методов должны быть верблюжьими (camel case).

Правильный:

class ModelExampleExample extends Model public function addExample()

Неправильный:

class model_exampleexample extends Model public function add_example()

Область действия метода всегда должна быть приведена.

Правильный:

public function addExample()

Неправильный:

function addExample()

Назначение функций PHP (помощников)

Имена вспомогательных функций должны быть в нижнем регистре и подчеркивания, используемых для разделения слов.

Именование переменных PHP

Переменные PHP должны быть в нижнем регистре и подчеркивания используются для разделения слов.

Правильный:

$var = 123; $new_var = 12345;

Неправильный:

$Var = 123; $newVar = 12345;

Пользовательские константы

Пользовательские константы устанавливаются в верхнем регистре.

Правильный:

define('MY_VAR', 'My constant string value');

Неправильный:

define('my_var', 'My constant string value');

Константы PHP

Эти типы констант (true, false, null) устанавливаются в нижнем регистре

Правильный:

$my_var = true;

Неправильный:

$my_var = TRUE;

Правила HTML/CSS

Имена классов и идентификаторы должны быть с дефисами и не использовать подчеркивание

Правильный:

class="my-class"

Неправильный:

class="my_class"

PHP CodeSniffer

Здесь есть стандарт PHP_CodeSniffer: https://github.com/opencart/opencart/tree/master/tests/phpcs/OpenCart

phpcs --standard=phpcs.xml opencart