Заметки WEB-разработчика

Полезные материалы для web-разработки

Дополнения кода phpstorm (Code Completition)

Важной функцией IDE является способность подсказывать названия и атрибуты методов. Особенно это важно для ООП, когда цепочки по 3-4 наследующихся класса способны запутать кого угодно. При нормальной архитектуре проекта IDE способна разобраться сама, иначе подсказки нужно устанавливать принудительно по правилам PHPDoc.

В каких случаях ide требуется объяснить что куда:

  • Функция может вернуть несколько типов
  • Объект является элементом массива
    $var = $arr[‘object’];
  • Класс 'B’ extends ‘A’. В классе 'A’ метод foo() возвращает $this, в классе 'B’ реализация метода отсутствует. Вызвав из объекта ‘B’ метод foo() IDE будет думать что возвращен был объект A.
  • При нативной шаблонизации средствами PHP. Где-то в дебрях системы в шаблон передается переменная $some, но внутри шаблона об этом неизвестно.

 

Для функций нужно писать PHPDoc с параметром @ return. Например:

/** @return SomeClass */
function a() {[…]}



Для переменных также можно указать комментарий:

/** @var $my_var SomeClass */


Тогда ниже для $my_var будет доступны подсказки

Для методов над классом можно указать PHPDoc

/** @method B foo() Описание метода */
class B extends A {[…]}



Если функция возвращает массив объектов

/** @return SomeObject[] */


Тогда, например, в foreach становятся доступны подсказки $value->… (по полям и методам класса SomeClass).

Комментарии

Комментарии через Вконтакте