Matt Curry смастерил плагин Interactive для плагина DebugKit.

Для чего он нужен?

В DebugKit добавляется новая панель — интерактивная консоль CakePHP. В ней можно:

выполнять простой пхп-код

10 % 4 //вернет 2
is_array(49) //вернет false

выполнять SQL

SELECT id FROM users WHERE email = 'test@test.com' //вернет id пользователя
UPDATE posts SET published = false; //вернет "No results found.", но обновление выполнит

использовать функции

__('Test Message', true) //возвратит перевод текста в соответствии с установленной локалью
Configure::write('Config.language', 'es');
__('Test Message', true); //возвратит перевод текста по-испански

использовать библиотеки

Security::hash('my_pAssw0rd', null, true) //возвратит хэш пароля
Set::extract('/id', array(array('id' => 3), array('name' => 'test', 'id' => 4))) //array(3, 4)

использовать хелперы

$html->link('Posts', array('controller' => 'posts')) //возвратит html-код для ссылки и саму ссылку
$form->input('Post.title'); //возвратит код поля ввода и само поле

использовать код вашего приложения

Post::find('first') //The first record from your posts table
User::findById(3) //The user record for id 3

проводить отладку если что-то работает, не так как вы задумывали, то можно включить отладку

Configure::write('debug', 2);
User::findByIdd(3) //покажет ошибку

примечания при использовании консоли через DebugKit можно группировать команды, разделяя их точкой с запятой. Хотя при этом нельзя объявить переменную в одной команде, а использовать в другой. Вот такой код не сработает:

$i = 10;
$i ++;
echo $i;

Также следует заметить, что в примерах никогда не указывалась ни одна из используемых моделей. Плагин заботится об этом сам. Можно вызывать методы как статические, так и как динамические. Все это будет работать:

Post::find('first');
$Post->find('first');
Post->find('first');
$this->Post->find('first');

Установка.

  1. Скачать плагин с гитхаба
  2. Поставить DebugKit из транка
  3. В AppController подключить панель $components = array('DebugKit.Toolbar' => array('panels' => array('Interactive.interactive')));
  4. Использовать через консоль cake interactive