Use Debug CSS in CakePHP
The default layout that comes with CakePHP has some nice styling, especially for the debug table that appears at the bottom. But once you've created your own default layout, you'd have to come up with your own debug styles or copy over the ones from the Cake default.
I've done something in between the two. I've created a new stylesheet called debug.css and include it whenever debug mode is on. I add it to my layout like so:
<?=DEBUG?$html->css('debug'):'';?>
I've copied over the debug table styles into this and prepended all of them to style only the #cakeSqlLog
table.
Another thing I've done is used position:fixed
to lock the debug table to the bottom of the page.
body {
margin-bottom:150px;
}
table#cakeSqlLog {
position:fixed;
bottom:0;
margin:0;
}
#cakeSqlLog tbody {
height:100px;
overflow:scroll;
}
One of the things to note here is the use of overflow on the tbody
. Doing so limits the size of the debug table. Too many queries would make the table too long and interfere with what is underneath. So, I just keep it to a minimal height and allow it to scroll.
The other thing I've done is add extra margin to the bottom of the body so that long pages give me enough scroll bar to see the bottom of the page that would otherwise be covered by the debug table.
Debug Delight
If you felt really ambitious, you could even hook up some JavaScript and a button to show or hide the debug table.
Also, don't limit yourself to just styling the debug table. You could also add other styles that you'd use just for debugging like outlines on page elements or background grids. Then, if you inadvertently forgot to remove a style before going live, it wouldn't be an issue.
Conversation
Yeah, customizing the way debugging information is displayed within CakePHP is a good thing to do ; ).
Anyway, I see you are using the short tags syntax (<?= "text" ?>) for <?php echo "text" ?> in your example. That's fine as long as you deploy in enviornments that allow the usage of short tags, but when publishing / distributing code I'd recommend you to use the full syntax for portability reasons.
Hm, now I feel like one of those people who only comment on things to complain ... : /.
Boy, that's hard to read.
<?= DEBUG ? $html->css('debug') : ''; ?>
I feel better already ;)
Heh, sorry about that. :) I tend to be terse in my coding.
Felix: I've heard mention of that and while I haven't bothered with releasing anything on such a grand scale, what is the percentage of hosts that don't have short tags enabled? I much prefer it as it just seems a little too verbose.
Just a heads-up for 1.2 users -- the debug table doesn't have a predictable id -- the class is set to cakeSqlLog though (since r4915).
A little s/#cakeSqlLog/.cakeSqlLog/ action will get you in order though.
Nice stuff . Nice site . Nice ideas