Обновляемый пост о полезности мощного инструмента разработчика от компании JetBrains
</p>
Сегодняшний пост - заготовка для сбора всей информации о замечательном инструменте от компании JetBrains,
PhpStorm
.
По ссылке выше - подробное описание и ссылка на скачивание актуальной версии продукта. Продукт доступен для 30-тидневного ознокомительного периода. Также, есть бесплатная EAP-лицензия.
Дальше - полезности, которыми я пользуюсь (или планирую пользоваться).
Долгое время работал на светлой теме, но к концу дня при написании кода по белому экрану, глаза от яркости экрана сильно устают. Я себе производил различные настройки, добавлял много зеленого цвета в форматировании текста, фон делал приглушенным, но все равно общая картинка была яркой. И вот сегодня решил попробовать темную тему (очень много видел скриншотов экрана и везде, у всех, была именно темная тема, а не как светлая). Попробую в течение недели проработать с таким вариантом - надеюсь, глаза будут уставать меньше.
Для разработки под 1С-Битрикс, начиная с 10-й версии появился замечательный плагин "Bitrix Framevork Support" (может и раньше появился, но я только недавно узнал о нем). Для его установки - нужно просто зайти в настройки продукта и в разделе плагинов произвести поиск и установку.
Очень много о полезности написано в хабростатье . Приведу только выдержку отсюда. Кому нужно - милости прошу по ссылке - там много картинок.
CTRL+ALT+L
(Reformat Code), одна из моих самых используемых комбо, форматирует ваш код в соответствии с выбранными настройками оформления кода. Если вы находитесь в Linux, комбинацияCTRL+ALT+L
уже может быть связана с «Блокировкой экрана», и вы должны будете отвязать его в системных настройках или изменить его в настройках PhpStorm. Я у себя отключил эту комбинацию в линуксе (точнее перевел ее на станадартную виндозную Win+L);- Нажав
CTRL+SHIFT+Backspace
(Last Edition Location), или кнопками мыши «Вперед» и «Назад» (если они у вас есть), вы перейдете к предыдущему месту редактирования. Это очень полезно при работе с большими файлами; - Удержание
CTRL
при наведении курсора на переменные или методы даст вам дополнительную информацию, аCtrl+клик
на переменной или методе, или нажатиеCTRL+B
(Declaration), когда курсор установлен на методе или на переменной приведет вас прямо туда, где он определен; CTRL+Пробел
(Basic) вызовет всплывающее окно с подсказками, если вы случайно закрыли его или оно какой-то причине не открылось;- Когда PhpStorm обнаруживает какие-либо проблемы, он подчеркнет проблемную область и вызывает всплывающую
подсказку поверх него при наведении мыши или курсора клавиатуры в этой области. Нажав на неё или нажав
Alt+Enter
(Show Intention Actions) будет предложено решение; CTRL+N
(Class), иCTRL+SHIFT+N
(File) позволит вам мгновенно перемещаться в любую часть какого-либо класса или файла проекта. Поиск является нечетким, а также поддерживает номера строк — вы можете использовать сокращения:XX
, где ХХ — номер строки;- PhpStorm запоминает несколько последних значений буфера обмена — вы можете нажать
CTRL+SHIFT+V
(Paste from History), чтобы вызвать всплывающее окно, которое позволит вставить ранее использованное содержимое буфера обмена; - Если вы влюблены в способность Sublime производить поиск по командам самой IDE, то вы можете делать это и в
PhpStorm —
CTRL+SHIFT+A
(Fine Action) вызовет всплывающее окно поиска команд. Забыли сокращение для переформотирования кода? Просто нажмитеCTRL+SHIFT+A
и наберите «Refor ..»; - Можно сгенерировать HTML используя
Emmet встроенный в
PhpStorm. Просто введите
div#myDiv>span.mySpanClass>ul>li*5
и нажмитеTAB
. Расширить эти возможности для любого языка можно добавив свои шаблоны в Settings -> Editor -> Live Templates. - Возможно несколько неинтуитивно,
CTRL+W
(Select Word at Caret) (который чаще всего используется для закрытия вкладки, так что вы можете переназначить его) будет выбирать блоки кода под курсором (слово, переменную, и т.д.). Повторение комбинации расширяет выбор, включая родительский узел; - Контекстно-зависимое редактирование позволит вам редактировать фрагмент кода, написанный на другом языке в
отдельном редакторе. Например, если у вас есть HTML фрагмент, содержащийся в PHP строке, нажмите
Alt+Enter
над этой строкой и выберите Edit HTML; - Режим выбора колонки может быть вызван, удерживая среднюю кнопку мыши (колесико) и перетаскивая. Это особенно полезно, когда нужно скопировать часть кода с глубоко отступом, но игнорируя ненужные пробелы;
- Нажатие
Alt+Home
(Jump to Navigation Bar) позволит использовать курсоры для перемещения по цепочке переходов в верхней части.ESC
выводит из этого режима; - Рефакторинг (переименование) переменные и применения изменений сразу во всех местах, которые используют —
SHIFT+ALT+CTRL+T
(Refactor This) вызов меню рефакторинга; CTRL+F12
(File Structure) вызовет всплывающее окно, которое позволит выбрать метод в текущем файле, к которому вы хотите перейти. Несмотря на то, что нет поле поиска, как только вы начнете печатать, выбор сузится до вариантов, которые вы ищите;
А вот еще одна
хабростатья
. Немного выдержек и отсюда:
- Создание PHPDoc. Если перед существующим методом начать писать /** и нажать Enter. Можно выбрать одну или несколько функций и на основании атрибутов и содержимого будет сформирован Doc Block;
- При создании класса потомка или реализации абстрактных методов, чтобы не допустить ошибку, обычно приходится
лезть в класс предок и запоминать или копипастить название и атрибуты метода. Или проверять для всех ли
абстрактных методов есть реализация и вспоминать что же там требуется для ArrayAccess. Есть вариант получше:
[CMD] + I – Имплементация
[CMD] + O – Переназначение
После нажатия хоткея появляется окно где можно выбрать какие именно методы будем реализовывать. После выбора генерится соответствующий метод с соблюдением приватности и имена атрибутов; - С помощью [CTRL] + [SHIFT] + 0...9 можно оставлять метки. Вернуться на метку можно с помощью [CTRL] + 0...9. Работает в контексте всего проекта;
- Окружение выделения предзаданными штуками, типа тегов или if-else, в зависимости от контекста: [CMD] + [ALT] + T;
- Alt + ~ — менюшка с git коммандами
UPDATE 2017-01-28
Давно искал и не мог найти, как создать шаблон файла, в котором уже используются переменные (если задать просто $peremennay - потом, при создании, система попросит ввести переменные еще раз :(). Вот сегодня, наконец-то попалась на глаза статья, в которой достаточно ясно описывается весь механизм. Подробнее можете почитать тут, тут тут и тут, а я расскажу о тех мелочах, которыми я пользовался.
И так, заходим в создание нового шаблона файла (File-Settings-Editor-File And Code Templates-Files). Тут создаем новый файл шаблона, задаем ему название.
Мне нужно было создать файл, с классом. Я сделал возможность установки имени класса при создании файла. Таким образом, при создании нового файла мы ему будем задавать название файла и название класса в нем. В самом файле, блок с описанием класса вводим с проверкой, заполнено ли название класса:
/** * ${PROJECT_NAME} - ${NAME} * * Initial version by: ${USER} * Initial version created on: ${DATE} */ #if (${CLASSNAME}=="") class ${NAME} { #else class ${CLASSNAME} { #end ...... // тело класса } #if (${CLASSNAME}=="") ${DS}masterAjax = new ${NAME}(); #else ${DS}masterAjax = new ${CLASSNAME}(); #end
В начало файла вставляем комментарий, с указанием имени проекта, названия файла, имени автора файла, даты создания.
Дальше идет проверка: если имя класса не заполнено - выводится в качестве имени класса, название файла, если заполнено - выводится оно.
Потом идет уже тело класса. Внутри все переменные виде $var заменять на $(DS)var. Конструкция $(DS) при создании нового файла заменяется на
.
Под описанием класса аналогично делаем вызов класса - если заполнено имя класса - выводим его, иначе - имя файла.
$
вот такой хитрый код позволяет сделать заготовки php-файлов для увеличения скорости сайтостроительства.
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.