PDO debug class
Een uitbreiding op PDO welke alle prepared statements opvangt en opslaat. Bij het weergeven kan je de parameters die je aan je prepared statements hebt gegeven terug laten plaatsen om te zien hoe de query eruit had gezien als je hem zonder placeholders had geschreven. Als het goed is kan hij ook goed overweg met het meerdere malen uitvoeren van hetzelfde statement, maar dan met andere waarden.
Hij neemt ook nog even de tijd op, en het aantal affected rows. Doordat het een uitbreiding van PDO zelf is, kan je hem zo in de plaats van PDO gebruiken.
Verder is er de PDO::dump functie, welke je opgemaakte HTML oplevert. Niet wat je in een klasse zou verwachten, maar wel handig in combinatie met register_shutdown_function.
download: http://phphulp.ikhoefgeen.nl/debug_pdo.phps
Last note: hij doet niet aan foutafhandeling. Aangezien de meesten PDO in combinatie met exceptions gebruiken zou dat geen probleem moeten opleveren.
Update 07-02-2009:
- Hernoemd van PDO_Debug naar Debug_PDO. Is wat logischer wanneer je Poor Man's Namespacing gebruikt (oftewel, autoload + klassenaam als padnaam)
- Ondersteund nu ook anonieme placeholders (de ?'s in je statement)
- Wat advanced features toegevoegd die ik zelf toch graag blijk te gebruiken, zie hieronder.
Met Debug_PDO::add_filter kan je een callback meegeven die beslist of de query wel of niet wordt uitgevoerd. Het eerste argument aan deze callback is een snapshot van de query, het tweede argument mag een reference zijn naar de $success variabele, de return-variabele van Debug_PDO_Statement::execute. Zo kan je bepaalde queries wel verhinderen van uitvoeren, maar je script toch voorhouden dat ze prima lukten.
Debug_PDO::add_listener kan je een callback meegeven welke bij het uitvoeren van een query wordt aangeroepen. Op die manier kan je live meekijken welke queries er door je script worden uitgevoerd. Het eerste en enige argument aan de callback is een snapshot. Merk wel op dat er nog geen begin- en eindtijden beschikbaar zijn in dit snapshot, de callback wordt voor de werkelijke execute aanroep al geroepen, niet na.
Debug_PDO::add_decorator kan je een mooie opmaakfunctie meegeven. Deze wordt aangeroepen voor iedere placeholder die bij Debug_PDO_Snapshot::query_as_sql() wordt vervangen door z'n werkelijke waarde. Is bijvoorbeeld nuttig om hele grote strings in te korten, of HTML opmaak om je waarden te zetten zodat ze beter zichtbaar zijn, html te escapen, of zoals in het voorbeeld hieronder leuke terminal kleurtjes eromheen te plakken.
Gesponsorde koppelingen
PHP script bestanden
Er zijn 6 reacties op 'Pdo debug class'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu