Привет, поговорим немного о code style, в википедии про него пишут так. И правильно — это действительно стандарт оформления кода. Для чего он нужен? Тут все просто, когда с кодом работает большое количество человек, нужно придерживаться каких-то определенных стандартов. Что б каждый разработчик мог быстро разобрать код. Code style может отличатся в каждой команде по специфике проекта. Но стоит выделить основные правила, которые помогут вам в разработке.
Стиль написания
Для начало надо определить стиль написания. Если вы пишете в ООП подходе то следует использовать CamelCase. В случае функционального программирования следует использовать Snake case. Главной целью code style является читабельность кода. Не надо думать, что если вы напишете меньше символов в переменной или методе то код будет работать быстрее — это просто смешно. Код должен быть красиво отформатирован и понятен. По своей сути если писать грамотные названия методов, то можно не вести документацию. Все суть будет понятна из названия методов и переменных. В примерах ниже я буду использовать CamelCase.
Именование переменных
Все переменные пишем в верблюжьем стили. Не используем в названиях переменных цифры.
$idCity; $productCategory; $userToAccount;
Пробелы
Не нужно жалеть пробелы, пример плохо оформленного кода
$count=0; if($count>5){ } foreach($items as $key=>$value){ $count=(int)$value; }
Нужно писать так
$count = 0; if ($count > 5) { } foreach ($items as $key => $value) { $count = (int) $value; }
Тела всех методов начинаются с новый строки, а всех операторов с новой строчки
private function _isUserExist() { /*...*/ } public function onDisplayPage() { if (!$this->_isUserExist()) { throw new Exception('User Not Found'); } }
Оформление массивов
Не стоит писать массивы так:
$options = [ "path" => "/path/to/folder", "keyInValue" => $keys['index']];
Следует его выровнять и сейчас массив будет выглядеть как надо
$options = [ "path" => "/path/to/folder", "keyInValue" => $keys['index'] ];
Имена методов
В ООП подходе всегда указываем уровень изоляции метода. Если метод приватный то его название начинается с нижнего подчеркивания.
public function getUsers() { /*...*/ } private function _hasUser() { /*...*/ }
Все методы можно разделить на группы и использовать определенный префикс для каждой группы.
Геттеры и сеттеры
Такие методы начинаются с префиксов get или set. Например: getUsers, getProducts, setAction.
Отображение данных
Для отображение данных на странице следует использовать префиксы display или onDisplay. Например: displayForm, onDisplayMainPage, displayUserJson
Возражение контента
Методы которые возвращают контент (html) начинаются с fetch. fetchMenu
обработка событий и запросов
Обработка запросов ajax, будут начинаться с onAjax. Например: onAjaxUpdateForm. Если метод является обработчиком событий или колбеком то он будет начинаться с префикса on. onSubmit, onRegistration, onSignIn. Все методы отвечающие за бизнес логику будут начинаться с префикса do. Например: doChangeStatus, doUpdateUserData
логические проверки
Все методы которые отвечают за проверки будут начинаться с is, has. Длинны выражения в в условиях следует выносить в метод. Например вот так записывать плохо:
if ($a == 10 && $b == 5 || $a == 2 && $b == 6) { }
Из этого условия не возможно понять что это за условие. Вот так будет лучше
if ($this->isAllowedFigure($a, $b)) { }
Правило 80 символов
Очень хорошое правило говорит что длинна символов в IDE не должна превышать 80 символов. О настройке IDE я говорил в одной из своих прошлых статей
Тут описан не весь code style, которые я хотел показать, это лишь небольшая часть. В дальнейшем я буду дополнять эту статью новыми правилами. Хочу поделится ссылкой на стандарты php которых надо придерживайся и переодически подчитывать sonarsource.com