Das Putzlowitsch Test- und SEO-Blog

Hackers Paradise

Es klingt ein bißchen illegal, doch es geht hier um die in WordPress nutzbare Erweiterung ‚my-hacks.php‘. Also alles im grünen Bereich.
Wenn sich solche eine Datei im WP-Wurzelverzeichnis befindet und außerdem die Option

[x] Unterstütz die veraltete my-hacks.php-Datei

aktiviert ist, wird der darin befindliche PHP-Code ausgeführt.
Nun gibt es ja mittlerweile die tolle Plugin-Schnittstelle und deshalb stehte da wahrscheinlich auch „veraltete my-hacks.php-Datei“, aber sie hat einen großen Vorteil. Sie wird nämlich vor allen Plugins geladen. So habe ich mir hier z.B. eine kleines Debugmodul eingerichtet, mit dem ich dann innerhalb eines Plugins Debug-Infos in eine Datei schreiben kann.

Nette Sache, denn man kann meist schlecht reingucken, was das Plugin so gerade macht. Ich teste zwar das Meiste auf einem lokalen Testserver, aber die hier bei Strato existierende Umgebung kann und will ich nicht simulieren. Es fängt schon damit an, daß meine PHP als Apache-Modul läuft, bei Strato aber als CGI. Und einige Dinge verhalten sich halt abhängig von der Server-API unterschiedlich.

Hier mal meine my-hacks.php-Datei. In die Debug-Datei schreiben geht dann einfach mit

plw123_debugfile_write( "Text" );

wenn man nicht vergessen hat, bei “Einstellungen” -> “Verschiedenes” die Option „Unterstütz die veraltete my-hacks.php-Datei“ zu aktivieren :-) .

Keine Kommentare »

unexpected T_VARIABLE, expecting T_STRING

Jaja, das kommt vom Kopieren und Einfügen, auch als „Copy&Paste“ bekannt. Da wundere ich mich, was denn der PHP-Interpreter an dieser Stelle wohl nicht mag (Zeile 2):

<?php
  function $plw123_debugfile_open() {
    global $plw123_debugfile;
    $plw123_debugfile = fopen( 'plw123_debugfile.txt', 'a' );
    $plw123_debugfile_write( "***** Debugfile open *****" );
  }
...

Sieht doch gut aus. Aber bei PHP ist es nun mal so, das alles was mit einem $ beginnt, als Variable interpretiert wird. Und ein Funktionsname darf deshalb niemals nicht mit einem $-Zeichen beginnen.
Im Übereifer hatte ich nicht nur bei den Variablen, sondern auch bei den Funktionsnamen das ‚$plw123_‘ dran kopiert, obwohl es da nur das ‚plw123_‘ hätte sein dürfen.

Keine Kommentare »