Отладка – неизбежная и необходимая часть любого цикла разработки. Пока что CakePHP не предлагает ни одного инструмента, который напрямую соединяется с IDE или редактором. CakePHP предоставляет несколько инструментов, помогающих при отладке и, показывающих что запущено «под капотом» вашего приложения.
Функция debug() – глобально доступная функция, которая работает подобно PHP функции print_r(). Функция debug() позволяет вам показать содержимое переменной несколькими различными способами. Если вы хотите, чтобы данные были показаны в дружественном HTML виде, установите второй параметр в true. По умолчанию функция также выведет файл и номер строки из которой делается вызов.
Результат этой функции отображается только если переменная ядра debug установлена в значение большее нуля.
Для того, чтобы использовать отладчик, убедитесь, что Configure::read('debug') установлена в значение большее 0.
Функция dump выводит содержимое переменной. Она выведет все свойства и методы (если таковые имеются) для переданной переменной.
<?
$foo = array(1,2,3);
Debugger::dump($foo);
//вывод
array(
1,
2,
3
)
//простой объект
$car = new Car();
Debugger::dump($car);
//вывод
Car::
Car::colour = 'red'
Car::make = 'Toyota'
Car::model = 'Camry'
Car::mileage = '15000'
Car::acclerate()
Car::decelerate()
Car::stop()
?>
Создает детализированный журнал событий трассировки в момент вызова функции. Метод log() выводит данные подобно тому, как это делает Debugger::dump(), но в debug.log вместо выходного буфера. Обратите внимание, что ваш каталог app/tmp (и его содержимое) должны быть доступны для записи, чтобы функция log() работала корректно.
Возвращает текущий стек трассировки. Каждая строка трассировки включает вызываемый метод, из какого файла и строки сделан вызов.
<?
//В PostsController::index()
pr( Debugger::trace() );
//вывод
PostsController::index() - APP/controllers/downloads_controller.php, line 48
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 265
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 237
[main] - APP/webroot/index.php, line 84
?>