Я работаю над некоторым устаревшим кодом, и мне нужно получить некоторую информацию от объекта. Цена, например. Цена может быть сохранена в переменной или ее можно получить с помощью метода. Я еще не знаю, только что он существует внутри объекта.
Я могу захватить объект в коде и var_dump все переменные, чтобы посмотреть, что доступно в тот момент времени выполнения. Но иногда то, что мне нужно, не возвращается
$item->price
но вместо этого нужно
$item->get_price()
Мне кажется, было бы очень полезно иметь возможность выгружать информацию из методов таким же образом, как я могу сбрасывать информацию из переменных.
Поэтому в идеале я буду придерживаться этой команды в коде, и она вернет минимальный список всех методов, которые можно вызвать на объекте. В идеале, если эти методы не имеют входных данных, тогда они также вернут свои возвращаемые значения.
Существует ли такая команда в PHP? На любом языке?
Вам нужно написать свой собственный.
Взгляните на get_class_methods
. Для этого вам нужно иметь имя класса. Вы можете получить это с помощью get_class
.
Поэтому вы хотите представить что-то подобное в своей библиотеке:
function getObjectMethods(object $obj) {
$className = get_class($obj);
return get_class_methods($className);
}
Возможно, вам стоит подумать о лучшей IDE, которая поддерживает подсказки типов и т.д. Посмотрите, например, на PHPStorm.
get_class_methods
и классReflection
__call()
, вы не сможете определить какие-либо методы, которые могут его использовать.