Сегодняшний пост - заготовка для сбора всей информации о замечательном инструменте от компании 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-файлов для увеличения скорости сайтостроительства.