Подсказки в IDE (Zend Studio) и наследование классов

partizan

Новичок
Подсказки в IDE (Zend Studio) и наследование классов

Есть класс X, в нем много методов, которые возвращают екземпляр класса A. Примерно так:
PHP:
/**
 * @return A
 * */
function some_function()
{
   $res = $this->get_instance_of_A();
   // Различные манипуляции с $res
   return $res;
}
Теперь созлается потомок A2 от класса A, и потомок X2 от класса X.
В классе X2 переопределяется только метод get_instance_of_A() и теперь все методы X2 возращают екземпляр класса A2, но Zend Studio по прежнему считает, что метод some_function возвращает екземпляр класса A, а не А2, а хочеться иметь актуальные подсказки для класса A2.

Если какие-то варианты решиния даной проблемы, кроме переопределения всех методов в X2?
PHP:
/**
 * @return A2
 * */
function some_function()
{
   return parent::some_function();
}
Сильно-ли повлияет такое переобъявление на кол-во используемой оперативной памяти (если будет использоваться много подобных классов, и несколько уровней наследования)?

Некоторые из этих методов принимают довольно длинный список аргументов, можно-ли как-то сделать вызов parent::some_function() с теми же аргументами, что были переданы в some_function(), не перечисляя их? Что-то вроде
PHP:
function some_function($a, $b, $c, $d, ...)
{
   return parent::some_function(func_get_args());
}
но чтоб в радительскую функцию передавались аргументы так же, как в основную, а не массивом.

И последнее - если забить на переобъявление, можно-ли в коде после присваивания переменной значения указать Zend Studio, какого типа эта переменная на самом деле, чтоб показывались правильные подсказки?
 

confguru

ExAdmin
Команда форума
ZS смотрит на phpdoc (но чтоб обновились - там есть кнопка перестоить зависимости.. или что-то в этом роде.. )
 
Сверху