Стандарт кодування

Типи файлів і кодування#

Усі PHP-файли, крім файлів представлень (шаблонів), мають розширення .php.

Усі файли представлень (шаблони) мають розширення .twig.

Усі файли зберігаються в кодуванні UTF-8 (без BOM). Переведення рядків у Git обробляються автоматично: у репозиторії використовується LF. Під час клонування переведення рядків автоматично перетворюються на формат вашої системи (CRLF для Windows, LF для Mac/Linux).

Теги PHP#

Короткі відкривальні теги PHP та теги в стилі ASP не підтримуються. Тег пишеться малими літерами.

<?php

У версіях до 2.0 усі PHP-файли мали містити закривальний тег. Починаючи з 2.0 (і в ocStore 3) PHP-файли не мають закривального тегу.

?>

Відступи#

Відступи в PHP-файлах робляться символом TAB. Відступи з 4 пробілів не використовуються.

HTML у файлах шаблонів (.twig) має відступи у 2 пробіли — не 4 пробіли й не TAB. Відступи в JavaScript робляться символом TAB.

Пробіли#

Після IF, WHILE, FOR тощо та перед дужками має бути пробіл.

Правильно

if () {

Неправильно

if(){

Навколо ELSE тощо має бути пробіл перед і після фігурних дужок.

Правильно

} else {

Неправильно

}else{

Між зведенням типу та змінною пробілу НЕМАЄ.

Правильно

(int)$var

Неправильно

(int) $var

Під час присвоєння значення змінній перед і після знака дорівнює завжди ставиться пробіл.

Правильно

$var = 1;

Неправильно

$var=1;

Пробільні символи#

Після коду в кінці рядка не повинно бути пробільних символів. Так само й у порожніх рядках.

Після закривального тегу PHP (якщо він є) обов'язково приберіть будь-які пробільні символи.

Нові рядки#

Відкривальна фігурна дужка не переноситься на новий рядок: вона завжди стоїть у тому самому рядку, з пробілом перед нею.

Стиль 1TBS (One True Brace Style) (Вікіпедія)

Правильно

if ($my_example == 1) {

class ModelExampleExample extends Model {

public function addExample() {

} else {

Неправильно

if ($my_example == 1)
{

class ModelExampleExample extends Model
{

public function addExample()
{

}
else
{

Назви файлів#

Усі назви файлів пишуться малими літерами, слова розділяються підкресленням.

Назви класів і методів#

Назви класів і методів пишуться у стилі camelCase.

Правильно

class ModelExampleExample extends Model

public function addExample()

Неправильно

class model_exampleexample extends Model

public function add_example()

Область видимості методу завжди вказується явно.

Правильно

public function addExample()

Неправильно

function addExample()

Назви допоміжних функцій PHP#

Назви допоміжних функцій (helpers) пишуться малими літерами, слова розділяються підкресленням.

Назви змінних 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#

Назви класів та id пишуться через дефіс, без підкреслення.

Правильно

class="my-class"

Неправильно

class="my_class"

PHP Coding Standards Fixer#

Щоб без зусиль дотримуватися стандартів проєкту, використовуйте PHP Coding Standards Fixer. З конфігурацією проєкту він автоматично форматує код.

Якщо ваша IDE не має вбудованої інтеграції з php-cs-fixer, запускайте його як окремий інструмент.

Цією командою можна виправити код і привести його у відповідність до стандарту кодування проєкту:

php tools/php-cs-fixer.phar fix -v

Шлях до інструмента та файл конфігурації залежать від вашого робочого середовища: якщо в репозиторії немає теки tools/, встановіть php-cs-fixer окремо (наприклад, через Composer) і налаштуйте його відповідно до правил, наведених вище.

Інтеграція php-cs-fixer у робочий процес забезпечує однакове форматування, спрощує спільну роботу та підтримує чистоту й одноманітність коду.

Статичний аналіз коду#

Щоб завчасно виявляти типові помилки, перевіряйте код статичним аналізатором PHPStan. Якщо ваша IDE не має вбудованої інтеграції з PHPStan, використовуйте його як окремий інструмент.

Запустіть цю команду, щоб проаналізувати зміни в коді й виявити можливі проблеми:

php tools/phpstan.phar

Для ocStore 3 указуйте в налаштуваннях PHPStan цільову версію PHP, на якій працює ваш магазин (ocStore 3.0.4.1 підтримує PHP 8).

Використання PHPStan підвищує якість коду, бо помилки та невідповідності виявляються ще на етапі розробки. Такий підхід допомагає підтримувати надійну кодову базу без помилок.

Сторінку перекладено й адаптовано для ocStore з офіційної документації OpenCart. Ліцензія — GNU GPL v3.