Многие программисты для работы с 1С-Битрикс выбирают phpStorm (популярная платная IDE для создания веб-проектов). Это достойный выбор. IDE ускоряет многие аспекты кодирования без потери качества кода. Но эта статья не о достоинствах phpStorm.

Немногие знают, что на свете существуют правила написания исходного кода на PHP от Битрикса, соблюдение которых считается хорошим тоном. Правила не претендуют на звание абсолютной истины, но каких-то стандартов придерживаться ведь надо, не так ли? Попробуем настроить наш любимый phpStorm на работу с этими правилами. Настраивать будем версию 7.1.3 (самая свежая версия на момент написания статьи).

Пролог

Далее по тексту курсивом будут выделяться цитаты из Правил. Все основные манипуляции с настройками предстоит делать в окне Settings. Открыть его можно через меню File->Settings, используя кнопку на приборной панели, или используя комбинацию клавиш [Ctrl+Alt+S]. Как вызвать настройки В окне настроек есть строка поиска — очень удобный инструмент, которым можно пользоваться, если знать как именно называется нужная Вам опция.

Все настройки в phpStrom разделены на две больших группы — Project Settings и IDE Settings. Для навигации по дереву настроек будет принято обозначение [Project Settings->Code Style->HTML]. Пример на рисунке ниже. Окно настроек Некоторые разделы Правил поддерживаются phpStorm по умолчанию (такие как «Правила переноса строк») и не будут отдельно упоминаться в тексте.

Все настройки, задаваемые в phpStorm, можно использовать как для написания нового кода, так и для автоформатирования старого. Чтобы вызвать диалог Reformat Code, нужно использовать меню [Code->Reformat Code] или воспользоваться комбинацией клавиш [Ctrl+Alt+L]. Автоформатирование кода Применить настройки форматирования можно ко всему файлу, к выделенному фрагменту, ко всем файлам в каталоге (в том числе и рекурсивно). Полезная возможность, по ходу статьи в настройки вносится много изменений, так что инструмент быстрого форматирования уже существующего кода будет как никогда кстати.

Для ленивых — в конце статьи приведена итоговая таблица настроек, хотя настоятельно рекомендуется ознакомиться с самой статьей, или с Правилами программирования.

Структурирование текста

Какие настройки возможны

Длина строки

Нужно стараться избегать строк длинной более 120 символов. Если строка превышает этот размер, то нужно использовать правила переноса строки.

Многие IDE используют вертикальную линию для обозначения границы строки. PhpStrorm не исключение. Ограничитель строки Обычно при установке значения эта линия выводится как раз после 120-го символа в строке, но лучше заглянуть в настройки в раздел [Project Settings->Code Style->General] и проверить, так ли это. Нужная настройка называется Right margin (columns).

Чтобы phpStorm сам создавал переводы строк при достижении этого предела, можно отметить галочкой настройку в том же окне Wrap when typing reaches right margin. Включение этой настройки приносит необычные ощущения, к которым не все могут привыкнуть сразу. Но зато написать слишком много кода в строке в принципе не получится.

Пробелы и табуляция

Для форматирования отступов в коде нужно использовать табуляцию. Использование пробелов запрещено. Причины:
  • в случае использования табуляции каждый может настроить в своем редакторе желаемый отступ;
  • используется один символ вместо нескольких;
  • в случае смешивания пробелов и табуляции текст будет прыгать, разрушая форматирование.
По умолчанию phpStorm использует пробелы для форматирования отступов, хотя немногие это знают, ведь визуально нет никакой разницы между пробелами и табуляцией. Чтобы включить отображение отступов, нужно использовать настройку Show whitespaces, расположенную по пути [IDE Settings->Editor->Appearance]. Теперь пробелы будут обозначаться едва заметными серыми точками, а табуляции — стрелочками. Пробелы и табуляция Обычно после включения этой настройки части кода, написанные разными программистами или в разных условиях становятся четко различимы.

Теперь, чтобы сообщить IDE о приоритете табуляции, нужно в настройках [Project Settings->Code Style->PHP] на вкладке Tabs and Indents найти пункт Use tab character и включить эту опцию.

Следом идет опция Smart tabs, которая отменяет приоритет табуляции для случаев, когда вы делаете отступы после кода перед однострочным комментарием. Так как насчет форматирования комментариев Правила ничего не говорят, включать ее или нет — остается на ваше усмотрение.

На данном этапе можно воспользоваться инструментом автоформатирования (Reformat Code) для исправления отступов.

Пробелы

После запятой должен быть пробел. После точки с запятой, если она не последняя в строке (например, в инструкции for), должен быть пробел. Перед запятой или точкой с запятой пробелы не ставятся. Все операторы должны быть отделены пробелом от операндов с обеих сторон. Замена пробела символом табуляции не допускается.

Хотя отступы согласно Правилам написания исходного кода в Битрикс формируются табуляцией, есть пункт, посвященный и пробелам. Пробелы настраиваются на вкладке Spaces в [Project Settings->Code Style->PHP].

Один пробел используется в объявлении методов после запятой, но не перед скобками:

TestMethod($a, $b, $c);

За описанное правило отвечает настройка After Comma в группе Other.

Так же одиночный пробел используют для выделения операторов:

$a = $b * $c / $d;

Из правила неясно, какие именно операторы имеются в виду. Но, изучая примеры на странице Правил, можно заключить, про пробелами окружаются операторы:
  • присваивания;
  • логические;
  • сравнения;
  • арифметические.
При этом унарные операторы НЕ должны окружаться пробелами. Насчет остальных операций (побитовые, сдвиги, конкатенация) ситуация неопределенная.

Таким образом, можно предложить оставить все галочки в группе настроек Around Operators, кроме Unary operators (!, -, +, ++, -).
Пробелы 
Также пробелы используются при форматировании циклов:

for ($i = 0; $i < 10; $i++)

Согласно предыдущему правилу, мы уже установили пробелы вокруг операторов. Осталось только убедиться, что пробелы ставятся после точки с запятой. Это можно сделать в группе Other, настройка называется After semicolon.

Примечание: присутствие или отсутствие пробела после if правилами не регламентируется.

Данное примечание дает нам вольность в выборе, использовать или нет пробелы после ключевого слова if, и, скорее всего, for, while, switch, elseif, catch. Для единообразия предлагаю оставлять настройки phpStorm по умолчанию — а это значит, что в группе Before Parentheses будут установлены настройки:
  • ‘if’ parentheses;
  • ‘for’ parentheses;
  • ‘while’ parentheses;
  • ‘switch’ parentheses;
  • ‘catch’ parentheses.

Правила расстановки фигурных скобок

Открывающая скобка должна ставится под соответствующим оператором и на одном отступе с ним. Закрывающая скобка должна ставится под соответствующей открывающей.

Одно из существенных правил, следование или не следование которому может сильно «выделять» ваш код из толпы.

Чтобы убедиться, что phpStrom расставляет скобки как надо, необходимо найти вкладку Wrapping and Braces по адресу [Project Settings->Code Style->PHP]. Вкладка переносов и скобок За положение фигурных скобок отвечает блок Braces placement. Он содержит три настройки, которые указывают положение скобок при объявлении классов, функций и прочих случаев. Значение всех трех настроек должно быть Next line.

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

Пустые строки

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

Перед логической секцией рекомендуется вставить комментарий, в котором будет указано назначение этой секции.

Согласно правилу, программист вправе вставлять пустые строки в коде где угодно, чтобы разделять код на логические блоки, но упомянуты и прямые требования — пустые строки вокруг объявления метода.

Управление пустыми строками в phpStorm осуществляется во вкладке Blank Lines во все том же разделе [Project Settings->Code Style->PHP]. Необходимо установить значение 1 у настройки Around method. Не противоречит правилам установка других настроек, обычно добавляют отступы вокруг объявления класса (настройка Around Class).

Краткая сводка

В данной таблице объединена информация всей статьи, так что с ее помощью можно быстро убедиться, правильно ли у вас настроен phpStorm.
Путь в дереве настроек Название настройки Необходимое значение Значение по умолчанию
Project Settings->Code Style->General Right margin (columns) 120 120
IDE Settings->Editor->Appearance Show whitespaces Да Нет
Project Settings->Code Style->PHP, вкладка Tabs and Indents Use tab character Да Нет
Project Settings->Code Style->PHP, вкладка Spaces Other — After Comma Да  Да 

Around Operators — все кроме Unary operators (!, -, +, ++, -) Да  Да 

Around Operators — Unary operators (!, -, +, ++, -) Нет Нет

Other — After semicolon Да  Да 
Project Settings->Code Style->PHP, вкладка Wrapping and Braces Braces placement — In class declaration Next line Next line

Braces placement — In function declaration Next line Next line

Braces placement — Other Next line End of line
Project Settings->Code Style->PHP, вкладка Blank Lines Around method 1 1

Around Class 1 1

Заключение

В данной статье рассмотрен только аспект Правил написания исходного кода на PHP от компании 1С-Битрикс, связанный с форматированием кода — отступами, пробелами, скобками. Все прочие виды правил (стандарты именования классов, методов, переменных, констант; использование комментариев, идиом) будут рассмотрены отдельно.
Оцените статью
01.04.2014
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

Биллинг ИТ-компании на laravelОбычно мы рассказываем, как принесли пользу клиенту. Но сегодня у нас будет особый разговор, ведь заказчиком биллинговой системы ИТ-компании была… ИНТЕРВОЛГА! ...
Почему мы рекомендуем начинать с внедрения базовой версии b2b-платформыК нам в компанию ИНТЕРВОЛГА часто обращаются клиенты с заявками на внедрение личного кабинета дилера с длинным списком желаемых функций. Однако мы рекомендуем н...
Функция b2b-платформы — отправка рекламаций в CRMОптовые покупатели — ключевой сегмент экономики торгово-производственного предприятия, и их удовлетворённость напрямую влияет на успех бизнеса. Новый функционал...
Как b2b-платформа передает в 1С данные по новым контрагентам В этой статье мы расскажем, что происходит после того, как клиент зарегистрировал в б2б-кабинете новое юридическое лицо и сделал заказ, а также покажем, как...
Автоматизация и оптимизация бизнес-процессов — лонгрид, чтобы не запутаться Статья будет полезна всем, кто хочет улучшить эффективность своего бизнеса или узнать больше о возможностях автоматизации бизнес-процессов для повышения ко...
10 обязательных задач поддержки сайта на БитриксСтатья посвящена организации поддержки сайтов на Битрикс. Здесь не только про решение технических проблем и устранение багов. Здесь про развитие живых проектов...
Мы работаем по одному из двух форматов:
  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).
ИНТЕРВОЛГА предоставляет:
  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.
Ключевые услуги:
  • нагруженный интернет-магазин;
  • личный кабинет;
  • оптовые продажи — B2B-платформа;
  • маркетплейс;
  • технический аудит сайта;
  • Битрикс24 — корпоративные HR-порталы;
  • Битрикс24 — построение CRM-системы;
  • Битрикс24 — личные кабинеты сотрудников;
  • Битрикс24 — аудит портала;
  • 1С — интеграция с другими системами;
  • 1С — доработка системы;
  • маркетинг — комплексное интернет-продвижение;
  • маркетинг — продвижение для B2B.
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем