@HellWalk

Как отыскать __callStatic() метод?

Есть проект, в нем есть наблюдаю примерно такой код:

/**
* @method static self testMethod($param1, $param2)
*/
class Shirt extends Clothes {}
 
class Clothes
{
    public static function __callStatic($method, $params) {}
}
 
Shirt::testMethod('param1', 'param2');


Как понять, что в итоге обрабатывает testMethod(), если поиск по всему проекту, с указанием этого метода, находит только вызовы метода и комментарий в классе?

Метод __callStatic в родительском классе пустой.

Знакомый посоветовал через xDebug проследить, но с его настройкой под проект пока геморрой один. Ищу альтернативные способы.
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 2
berezuev
@berezuev
#define TRUE FALSE
Только дебаггером.
Может быть вообще где-то рефлексия используется, и через Reflection API со стороны есть внедрение в рантайм.
Ответ написан
Комментировать
@HellWalk Автор вопроса
Задача ушла на второй план, а сегодня вновь наткнулся на этот метод, и в очередной раз решил разобраться, тем более дебагер уже настроен.

Оказалось, что конкретно в моем случае концов вообще не найти - в проекте используется Fhalcon (будь он проклят), и механика работы его моделей вообще выходит за рамки PHP:

Phalcon\Mvc\Model is the first ORM written in Zephir/C languages for PHP, giving to developers high performance when interacting with databases while is also easy to use.


Т.е. формально есть класс Phalcon\Mvc\Model, и в нем есть методы - но они все пустые, и даже если закомментировать:
public static function __callStatic($method, $arguments) {}

Модели все равно продолжат работать - т.е. методы в этом классе прописаны просто для того, чтобы показать, что такой функционал есть, и добавить к ним описание.

Т.е. с этой магией, которую творит фалкон, приходится только смириться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽