interactive
interactive copied to clipboard
Custom panel for the CakePHP DebugKit allowing for interactive sessions with your app
/*
- Interactive panel for the CakePHP DebugKit
- Copyright (c) 2009 Matt Curry
- www.PseudoCoder.com
- http://github.com/mcurry/interactive
- @author Matt Curry [email protected]
- @author Sandu Lungu [email protected]
- @license MIT
*/
This version of the plugin is compatible with CakePHP 1.3 and the latest DebugKit
/* About */
This plugin adds easy interactions with your CakePHP app using the console or through a custom panel for the CakePHP DebugKit.
It handles simple PHP commands, SQL queries and PHP using your Cake objects.
/* Examples */ 10 % 4 (returns 2) is_array(49) (returns false) SELECT id FROM users WHERE email = '[email protected]' (retuns the id of the matching record) User::findByEmail('[email protected]') (returns the entire matching user record)
/* Power Usage */ When using in the DebugKit panel you can stack commands, just make sure to end each with a ";" as you would in your code.
If you're having trouble getting results for a particular command and can't figure out why try turning on debug as the first command: Configure::write('debug', 2); User::findByEmail('[email protected]'); Facebook.Page::findByEmail('[email protected]'); // here we use a plugin
/* Warning */ There isn't any sort of error detection or validation on the input. Also there isn't any pagination for long result sets. If you enter in a query that returns a million records, you're going to get a million records.
You can't declare a variable and use it across commands. For example this doesn't work: $i = 10; $i ++;
/* Instructions */
- Download the plugin to /app/plugin/interactive
/* Console Instructions */
-
Run the cake console passing the "interactive" shell from /app: ../cake/console/cake interactive
-
Enter commands as needed. Enter 'Q' to exit.
-
You can also commands as parameters. The interactive shell will run the command and exit ../cake/console/cake interactive Post::find('first')
/* DebugKit Instructions (trunk) */
- Include the panel: $components = array('DebugKit.Toolbar' => array('panels' => array('Interactive.interactive'));