PhpStorm IDE for PHP
Отладка / Debug
Автогенерация кода
Существует куча рутинных задач, которые иногда выполняются самим фреймворком, а иногда требуют тупой ручной работы. PHPStorm помогает упростить некоторые [CTRL]+N, например:
Создание геттеров и сеттеров (Getters & Setters)
По существующим переменным класса можно сгенерировать набор геттеров и\или сеттеров, причем в появляющемся окне можно выбрать для каких именно.
Создание PHPDoc
По сути действие аналогично тому, как если перед существующим методом начать писать
/**
и нажать Enter. Можно выбрать одну или несколько функций и на основании атрибутов и содержимого будет сформирован Doc Block.
Переназначение и реализация при наследовании (Override & Implementation) При создании класса потомка или реализации абстрактных методов, чтобы не допустить ошибку, обычно приходится лезть в класс предок и запоминать или копипастить название и атрибуты метода. Или проверять для всех ли абстрактных методов есть реализация и вспоминать что же там требуется для ArrayAccess.
Есть вариант получше:
- [CMD] + I – Имплементация
- [CMD] + O – Переназначение
После нажатия хоткея появляется окно где можно выбрать какие именно методы будем реализовывать. После выбора генерится соответствующий метод с соблюдением приватности и имена атрибутов, например так: public function createTable($drop = false)
{return parent::createTable($drop);}
Автоформатирование кода
Когда пишешь код сам, обычно форматирование получается само, но в ситуации, когда нужно поменять Code Style или пытаешься открыть чужой непривычно оформленный код, возникают проблемы. Можно смириться, а можно нажать [CMD] + [ALT] + L и IDE отформатирует код в соответствии с настройками (Preferences → Project Settings → Code Style → PHP)
Подсказки (Code Completition)
Для функций нужно писать PHPDoc с параметром @ return. Например:
/** @return SomeClass */function a(){[…]}
Для переменных также можно указать комментарий:
/** @var $my_var SomeClass */
Тогда ниже для $my_var будет доступны подсказки
Для методов над классом можно указать PHPDoc
/** @method B foo() Описание метода */class B extends A {[…]}
Если функция возвращает массив объектов
/** @return SomeObject[] */
Консоль
Многие фреймворки используют консоль для быстрого выполнения частых действий. Для Symfony, Zend и других популярных фреймворков PHPStorm поддерживает подсказки и автодополнение консольных команд в Command Line Tools Console [CMD] + [SHIFT] + X
Разновидности поиска
[CMD] + N – Find by Class Name
Поиск по имени класса. Удобно в больших проектах, когда всё зарыто вглубь директорий или просто неизвестно где находится. Убойности добавляет «умный поиск», т.к. ищется как по части названия класса, так и по первым буквам, например SomeVeryLongClass будет найден по «SVLC». Учитывает регистр букв, будьте внимательны.
UPD: «Умный поиск» разработчики называют Camel's Hump. Кстати в настройках можно сделать чтобы выделение слов, а также перемещение осуществлялось не целиком (до пробела), а именно по по словам (до заглавной буквы). Спасибо, yujin1st
[CMD] + [SHIFT] + N – Find by File Name
Поиск по имени файла. Аналогично поиску по имени класса использует «умный поиск».
UPD: Для нахождения файла по вложенности можно использовать слеш: some/deep/dir/with/file.txt найдется по «s/d/d/w/f», спасибо develop7
[CMD] + [SHIFT] + [ALT] + N – Find Symbol
Поиск любой функции/метода и констант, очень удобно, когда точно помнишь имя метода, а класс нет. Спасибо conf
[ALT] + [F7] – Find Usages
В момент когда курсор находится на имени класса или метода нажатие хоткея позволяет найти все использования в проекте или определенной части (Scope).
Есть вариант [CTRL] + [ALT] + [F7] — тот же поиск по использованиям, но в виде контекстного меню. Спасибо iPavel
[CTRL] + [SHIFT] + F – Find in Path
Поиск произвольной фразы по файлам проекта. При рефакторинге обычно хорошо дополняет Find Usages.
Не стоило бы писать о “просто поиске”, если бы не возможность ограничить директорию в котором будут искаться нужные штуки, или настроить Scope. Scope позволяет гибко настроить и сохранить область поиска, для использования в дальнейшем. Можно выкинуть из поиска, например, файлы фреймворка или сторонние либы.
live templates
phpstorm license key
Ключи активации phpstorm Ver 8 - 9 (Windows / Linux / MacOs)
User Name:Learn Programming ===== LICENSE BEGIN ===== 63758-12042010 00000Ryqh0NCC73lpRm!XVcxFChJ2g TUR2lZtlLXrPLbQ66Gs8MHs51RvF2y agoDlzne08Zm8VXbts1UMKE!EW4v8G ===== LICENSE END =====
User Name:Mr. Enrew ===== LICENSE BEGIN ===== 9167-D38728T 000020QwaYAMfRP"lg"iY7ZOCtQ7Hw Ety0BucaeyLzwzka899PsSMGiHkTYI hUZlpca1ffezR0DyzFpdOki7jbVm8U ===== LICENSE END =====
User Name:Dr. Alban ===== LICENSE BEGIN ===== 2604-D71052T 00001ikR7KznanEGNuWRag20JBc!fy HVl4Rv8nyMgpBnoKcRfq0x!vXkBMH4 qGcM1PCMSv2QHhXXEeVZSTFhkZ4xb5 ===== LICENSE END =====
Product : PhpStorm UserName : Mr. Endigo ===== LICENSE BEGIN ===== 6401-D92210T 00001GlhmP0"p5a60X9!rZ4zBUB8Cl UdFJuehu2PdaOh!CjXPrpBW6AfZzAW ILtUpsRXUESs"HBcQNy!qofCzLSEix ===== LICENSE END =====
Product : PhpStorm UserName : Entony Clichkovsky ===== LICENSE BEGIN ===== 8786-D23014T 00000zOS!U7K2P2nOUHZtUJPuopXDt p55feQcokDPS31lsZ5vqqOVmCCl9Cx WxVS!fALdMvW0LQ32YJImTyq!pWjS! ===== LICENSE END =====
Product : PhpStorm UserName : Roberto Almano ===== LICENSE BEGIN ===== 8659-D34829T 00000ILT!byBeyH4Yvcykp"O2MwLGg ZoUJbIVuwszN5yUoXBGbw5SUzpKUzn UBXRi8m4IBzZmfX4EcCKNu8g4UxcdM ===== LICENSE END =====
Ключи активации phpstorm Ver 10 - 11 (Windows / Linux / MacOs)
- Откройте активационное окно Select Help → Register…
- Выберите пункт server license
- Вставте в поле ввода http://idea.lanyus.com/
- Наслаждайтесь