Правила стилистического оформления кода на PHP
Общее
Все наименования переменных и функций должны быть написаны в стиле camelCase.
Хорошо:
$countUsers = 5;
$pageNumber = 1;
// ...
public function getId()
Плохо:
$count_users = 5;
$PageNumber = 1;
public function get_id()
Все наименования классов, треитов, интерфейсов должны быть написаны в стиле UpperCamelCase.
Хорошо:
class BasketItem
Плохо:
class basketItem
Тела всех языковых конструкций, в которых это необходимо, нужно открывать и закрывать с новой строки.
Хорошо:
foreach($orders as $orderId => $order)
{
if (!$order->isPaid())
{
// ...
}
}
foreach($orders as $orderId => $order){
if (!$order->isPaid()){
// ...
}
}
Переменные
При инициализации переменных до и после "=" должны быть пробелы. Это касается и операций +=, -= и т.д.
Хорошо:
$countUsers = 5;
$orders = [];
$order = new Order();
Плохо:
$countUsers=5;
$orders =[];
$order= new Order();
При инициализации переменных каждая должна находиться на новой строке.
Плохо:
$countUsers = 5; $orders = []; $order = new Order();
При инициализации ассоциативных массивов => должен располагаться на одном уровне для текущего уровня вложенности и иметь пробел до и после себя. Каждая пара ключ-значение должна располагаться на новой строке.
Хорошо:
$result = [
'name' => 'Иван',
'age' => 16,
'groups' => [
[
'title' => 'Группа 1',
'description' => 'Описание группы'
],
[
'title' => 'Группа 2',
'description' => 'Описание группы'
]
]
];
$result = [
'name'=>'Иван', 'age'=>16,
'groups' => [
[
'title' => 'Группа 1',
'description' => 'Описание группы'
],
[
'title' => 'Группа 2',
'description' => 'Описание группы'
]
]
];
Во всех случаях перечисления через запятую в одну строку пробел должен быть только после запятой.
Хорошо:
$this->isAvailable(true, 5, [1, 2, 3]);
$colors = ['black', 'white'];
Плохо:
$this->isAvailable(true,5,[1,2,3]);
$colors = ['black' , 'white'];
Массивы должны быть в новом стиле.
Хорошо:
$orders = [];
Плохо:
$orders = array();
$users = Array();
При обращении к свойствам или методам объекта не нужно ставить пробел перед и после ->.
Хорошо:
$user->getId();
Плохо:
$user -> getId();
Функции
При объявлении и вызове функции после имени не нужен пробел.
Хорошо:
public static function fing(int $id) : User
{
// Тело функции
}
// ...
$user = User::find(1);
Плохо:
public static function fing (int $id) : User
{
// Тело функции
}
// ...
$user = User::find (1);
При объявлении функции до и после ":" должны быть пробелы.
Хорошо:
public static function fing(int $id) : User
{
// Тело функции
}
Плохо:
public static function fing(int $id):User
{
// Тело функции
}
При объявлении класса, метода, свойства - необходим phpDoc. Хорошо:
/**
*Do something
*@param int $id
*@return User
*/
public static function fing(int $id) : User
{
// Тело функции
}
Плохо:
public static function fing(int $id) : User
{
// Тело функции
}
При вызове анонимной функции после function должен быть пробел, фигурная скобка при этом находится на уровне вызова.
Хорошо:
array_map(function () {
// Тело функции
}, $numbers);
Плохо:
array_map(function()
{
// Тело функции
},
$numbers);
При вызове методов с возможными ошибками, эти ошибки необходимо обрабатывать в блоках try/catch. Хорошо:
public function doSomething()
{
try
{
doSomethingElse();
}
catch (\Throwable $exception)
{
//Обработка ошибки
}
}