2013-02-28 3 views
2

Я пишу в symfony, и я вхожу в один из файлов actions.class.php.Как узнать значение переменной при написании PHP-кода (для отладки)?

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

Я думал об использовании FirePHP, но он предполагает установку его на серверной стороне, и я хотел бы знать о более легком или встроенном решении.

+0

Возможно ли повторить переменную, а затем после нее использовать выход? – MIIB

+0

Кажется, что страница просто пустая. –

+2

грязный, грязный, но по электронной почте сам будет работать. – SchautDollar

ответ

1

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

1

Если у вас есть доступ к файлам журнала сервера, возможно, вы захотите ознакомиться с функцией PHP error_log. Он напечатает строку в журнале ошибок PHP, а затем вы сможете проверить файл журнала.

-edit-: error_log также позволяет вам отправлять по электронной почте свое сообщение. Но это глупо.

+0

действительно есть пункт. Это хорошо работает. – SchautDollar

2

Emailing журналы работает точно, но есть некоторые лучше, легче и быстрее способов сделать это;)

В Symfony у вас есть доступ к регистратору, который позволит вам что-нибудь войти. В среде prod по умолчанию он отключен (конечно, вы можете включить его), но в dev он доступен не только в файлах журналов, но также печатает на панели отладки Sf Web.

Внутри использования действия:

$this->getLogger()->debug('My $variable value is now: '.$variable); 

Вы также можете использовать другие уровни лесосечных (->warning(''), ->err(''), ->crit('') и т.д.). Конечно, вам нужно изменить переменную на строку, если это массив или объект.

Фактически вы можете echo и var_dump вещи во время действия. Они будут отображаться на вашей странице (хотя беспорядок плохо с макетом, пока вы показываете материал до фактического шаблона).

Упомяните, что echo работает только со строками и цифрами. Если вы попытаетесь повторить логическое или массив, вы ничего не увидите. Если вы попробуете эхо-объект, будет использован метод __toString() или ошибка.

+0

Следует упомянуть, что это зависит от конфигурации ведения журнала environement (prod/dev/cache/etc ...). Иногда регистрация (даже ошибка или крит) не допускается на prod env. – j0k

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