2015-12-17 3 views
1

Я пытаюсь выяснить большую библиотеку PHP, и это не так хорошо документировано. Я хотел бы знать, есть ли способ распечатать все о классе. Например, я использую функцию get_class_methods(), чтобы распечатать методы этого класса и распечатывать область только этого класса. Я хотел бы видеть все методы внутри объектов внутри этого класса. Было бы неплохо увидеть переменные и все остальное. Таким образом, я могу распечатать все, а затем использовать поиск в браузере, чтобы найти то, что мне нужно. Возможно ли это, или есть способ, который уже делает это? Я не настолько хорошо разбираюсь в PHP, поэтому, если вы можете дать мне функцию, которая была бы потрясающей.PHP Отладка классов - Печать всего

+0

get_class_methods делает возвращение методов из класса, но почему дон» Вы открываете библиотеку и просто читаете код? – PAlphen

ответ

3

PHP имеет встроенную библиотеку под названием Reflection, которая позволяет анализировать классы и объекты в сложных деталях.

Вы можете получить все методы в классе так:

<?php 
$class = new ReflectionClass('Apple'); 
$methods = $class->getMethods(); 
var_dump($methods); 

Для свойств класса (переменные-члены):

<?php 
$class = new ReflectionClass('Apple'); 
$properties = $class->getProperties(); 
var_dump($properties); 
+0

Есть ли вызов метода, который сделает это для меня, мой класс называется $ shape – kingcobra1986

+0

Ну, '$ shape' - это имя переменной, а не класс. – Ian

+0

Да, это объект, который я хотел бы видеть во всем. – kingcobra1986

0

Хорошая среда IDE поможет вам перемещаться по коду, запускать сеансы отладки и проверять значения свойств во время выполнения.

Я чувствовал себя влюбленным в PHPStorm несколько лет назад, и до сих пор это моя любимая IDE. У него даже есть плагин Vim, который эмулирует vim =)

Существует структурный вид на эту IDE, которая показывает структуру кода :). Это означает каждое свойство и метод открытого файла класса. Существует представление Project, которое похоже на браузер каталога.

Вторая рекомендация - установить ack (http://www.beyondgrep.com). PHPStorm имеет действительно эффективный механизм поиска, но иногда вам просто нужно искать все подкаталоги проекта для регулярного выражения. Это отличный инструмент.

Мои два цента. :)

+0

Знаете ли вы о бесплатной среде IDE, которая это делает? – kingcobra1986

+0

Я использовал код с vim и его плагинами. Ack является бесплатным и имеет интеграцию с vim. Но вы должны серьезно рассмотреть IDE реактивных мозгов. У него был план, в котором вы каждый месяц загружаете сборки и используете (помогая тестировать) в течение месяца, свободно. – Niloct

+0

@ kingcobra1986 Извините за поздний комментарий, но в настоящее время я больше не использую phpstorm, потому что обнаружил vdebug. Я даже разблокировал исправление ошибки, это интерфейс vim для xdebug: https://github.com/niloct/vdebug (так что это все бесплатно). – Niloct

Смежные вопросы