Der einfachste PHP-Objekt-Debugger für den Browser

Die fantastische Javascript-console kann ganz wunderbar strukturierte Javascript-Informationen ausgeben. Mit einem relativ einfachen Trick kann sie auch strukturierte PHP-Daten (wie z.B. Arrays und Objekte) ausgeben.

Folgende PHP-Funktion kürzt diesen Prozess deutlich ab:

/**
 * Debug PHP variable to browser console
 * @param  mixed $mixed [description]
 */
function console_log($mixed)
{
    echo('<script>console.log(' . json_encode($mixed) . ');</script>');
}

Die Funktion erzeugt einfach das notwendige HTML, um den Inhalt des Parameters an die Console eines Browsers zu übergeben. Die strukturierten Daten sieht man dann beim nächsten Neuladen der betreffenden Seite. (Die Console öffnet man bei den meisten Browsern übrigens via F12 bzw. Ctrl+Shift+C.)

In PhpStorm kann man auch ein Live-Template definieren, und dann mittels Ctrl+J / Ctrl+Alt+T aufrufen:

echo('<script>console.log(' . json_encode($SELECTION$) . ');</script>');

Beispiel

So erzeugt der folgende Code…

$coords = Coordinates::set(40.7143528, -74.0059731, 10, 'New York City');
$coords2 = $coords->getRelativeCoordinates(1000, 45);
echo('<script>console.log(' . json_encode($coords2) . ');</script>');

…die folgende Ausgabe im Browser: