Как определить метод в дочернем классе без переопределения родительского? Здравствуйте.
В общем у меня стоит задача сделать поддержку IDE для фреймворка Phalcon. Т.к. мне не нравятся название классов типа (\Phalcon\Mvc\View) решил создать свой класс с именем Phalcon_Mvc_View и проследовал его от \Phalcon\Mvc\View. Всё круто, работает, но нет автокомплита в IDE, т.к. она не знает ничего про Phalcon. Собственно вопрос: "Как сделать так, чтобы IDE рассказать от методах родительского класса?". Док-блоки не предлагать
Хотелось бы чтобы получилось что-то подобноеclass Phalcon_Debug_Dump extends Phalcon\Debug\Dump
{
protected $_detailed = false;
protected $_methods = null;
protected $_styles;
public function getDetailed();
/**
* @param mixed $detailed
*/
public function setDetailed($detailed);
/**
* Phalcon\Debug\Dump constructor
*
* @param array $styles
* @param boolean $detailed debug object's private and protected properties
*/
public function __construct($styles = null, $detailed = false);
}

21 Авг 2019 в 07:07
201 +1
1
Ответы
1

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

Пример:

class Phalcon_Debug_Dump extends Phalcon\Debug\Dump
{
protected detailed=false;protected_detailed = false;
protected
d etailed=false;protected
_methods = null;
protected styles;/∗∗∗Getthedetailedflagvalue∗∗@returnboolean∗/publicfunctiongetDetailed();/∗∗∗Setthedetailedflag∗∗@paramboolean_styles;
/**
* Get the detailed flag value
*
* @return boolean
*/
public function getDetailed();
/**
* Set the detailed flag
*
* @param boolean
s tyles;/Getthedetailedflagvalue@returnboolean/publicfunctiongetDetailed();/Setthedetailedflag@paramboolean
detailed
*/
public function setDetailed(detailed);/∗∗∗Constructor∗∗@paramarray∣nulldetailed);
/**
* Constructor
*
* @param array|null
detailed);/Constructor@paramarraynull
styles
* @param boolean $detailed
*/
public function __construct($styles = null, $detailed = false);
}

В приведенном выше примере я добавил PHPDoc комментарии к каждому методу в дочернем классе Phalcon_Debug_Dump, указывая тип возвращаемого значения (если есть) и тип аргументов. IDE сможет использовать эту информацию для предоставления автодополнения методов и их аргументов при работе с экземплярами класса Phalcon_Debug_Dump.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир