TYPO3 Extbase SQL Debug

Damit mir der Orignal Link nicht wieder verloren geht:

Open the file „/typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php“
Navigate to the function „GetObjectDataByQuery()“
Go to the line next to „$this->replacePlaceholders($sql, $parameters, $tableName);“
Insert the following code

var_dump($sql);

Diese Vorgehensweise ist besser als andere im Netz da es nach „replacePlaceholders“ ansetzt, somit hat man wirklich den kompletten SQL Query.

Original von hier:
http://www.derhansen.de/2013/01/typo3-get-resulting-sql-from-extbase.html

Fehler in Standard-Installation von Xampp + XDEBUG unter Windows

Die Fehler die einem begegnen sind meist die größte Quelle des Ansporns und wenn man Sie gelöst hat bleiben die Lösung am längsten in Erinnerung.
Ein solcher Fehler hat mich nun fast zum verzweifeln gebracht. Ich wollte eigentlich nur einmal Webgrind ausprobieren und testen. „Webgrind is an Xdebug profiling web frontend in PHP5.“ [1] Um es also zu testen habe ich meine Xampp Installation gestartet und habe XDEBUG aktviert. Jedoch schien XDEBUG nichts zu laufen, da ich keine Profiling Datei erhielt. Nachdem ich nun mehrere Stunden mit dem Suchen nach Lösungen zu dem Problem verbracht habe und verschiedene Versionen von XDEBUG und XAMPP ausprobiert hatte, stellte sich raus das der Dateiname nicht korrekt ist.
In der Standard php.ini in XAMPP wird folgender Eintrag für den Dateinamen gesetzt.

xdebug.profiler_output_name = „xdebug_profile.%R::%u“

Allerdings enthält dieser Dateiname zwei Doppelpunkte, die in Windows Dateinamen nicht erlaubt sind, eine Änderung zu
xdebug.profiler_output_name = „xdebug_profile.%R-%u“, reicht nun aus um endlich meine Profiling Dateien zu erhalten.

Ich denke mal in Zukunft werde ich jeden Ausgabenamen einer Log Datei oder irgendeiner anderen sonstigen Datei 3x prüfen um auch wirklich sicherzustellen, das nicht eine solche „Lappalie“ Grund für eine derartiges Rätselraten ist.

[1]
https://code.google.com/p/webgrind/

PHP Skripte auf der Commandline

Wieder mal ein kleines Projekt brachte mich dazu ein PHP Skript auf Commandline bzw im Terminal ausführen zu wollen.
Zum einen sollte es schnell gehen und keine WebOberfläche benötigten zum anderen wollte ich auch einfach mal wissen wie es funktioniert. Im Endeffekt gar nicht schwer, das Zauberwort heißt getopt(). Mit dieser PHP Methoden lassen sich übergebene Argumente auf Commandline ebene abfragen.

PHP Code:

<?php
    $arguments = getopt("f:t:");
    var_dump($options);
?> 

CommandLine

php bsp.php -f -t

In diesem Fall werden die Parameter einfach übergeben, getopt gibt hier ein Array zurück mit der Hinterlegten Option und dem zugehörigen Wert. Wenn kein Wert übergeben wird, wird FALSE zurückgegeben.

Wenn wir den Aufruf nun ändern zu:

CommandLine

php bsp.php -f hello -t world

bekommen wir durch optget() ein Array mit den Optionen f -> hello und t -> world zurückgeliefert.