Knapp zwei Jahren wurde dieses Blog durch HHVM angetrieben. Obwohl die Unterstützung vieler PHP-Funktionen in der Vergangenheit nicht immer zufriedenstellend war, so war die Geschwindigkeit doch immer ein Hauptvorteil von HHVM. Mit zunehmender Serviceanzahl, drängte sich jedoch ein Problem immer mehr in den Vordergrund: viele Dienste benötigen einen Cronjob, welche ebenfalls in PHP realisiert sind. HHVM per CLI ist einfach zu speicherhungrig. Den Speicherhunger kann man schön in folgender Grafik erkennen:
[Mehr]Gezähmter HHVM
HHVM ist eine virtuelle Maschine für HipTop, welches PHP-Skripte in Maschinencode übersetzt und anschließend ausführt. Die übersetzten Skripte werden gespeichert und bei wiederholtem Aufrufwerden die bereits übersetzte Programm ausgeführt. Dadurch ergibt sich eine extreme Leistungssteigerung gegenüber der bisher üblichen Methode, PHP-Skripte durch mod_php oder PHP per FastCGI immer wieder neu zu analysieren und auszuführen.
[Mehr]MariaDB: Headers and client library minor version mismatch
Beim Einsatz von MariaDB kann es vorkommen, dass PHP5 beim Verbinden mit der Datenbank folgenden Fehler meldet:
mysqli::mysqli(): Headers and client library minor version mismatch.
Die PHP5-Bibliothek, welche für die Anbindung an MariaDB/MySQL zuständig ist, prüft, ob die MariaDB/MySQL-Bibliothek noch die gleiche ist, mit der sie übersetzt wurde. Das ist natürlich nicht mehr der Fall, wenn man die MariaDB/MySQL-Bibliothek auf eine neue Version aktualisiert.
Abhilfe schafft, den mysqlnd-Treiber zu verwenden, was auch das empfohlene Verfahren von MariaDB ist. Dazu muss unter Debian oder Ubuntu das Paket php5-mysqlnd installiert und php5-mysql entfernt werden.
[Mehr]WordPress – Shortcodes, Formulare und deren Verarbeitung
Bei der Suche nach Informationen, wie in WordPress Formulare eingebunden werden können, weisen die Suchergebnisse immer wieder auf ein Thema hin: die Einbindung von Kontaktformularen. Das war aber nicht gesucht, denn ich wollte ein selbst entworfenes Formular in mein WordPress-Blog einbinden und die in diesem Formular eingegeben Daten in einem PHP-Skript auswerten, um eine Grafik darzustellen.
[Mehr]SAM Broadcaster und Drupal 6
Vor längerer Zeit habe ich für meine interne Webseite ein Skript geschrieben, um die Playlist des SAM Broadcasters innerhalb einer Drupal 6 Webseite anzusteuern. Die beiden angehängten Skripte müssen ins Verzeichnis include/
der Drupal-Installation kopiert werden. Die SAM-MySql-Datenbank ist fest verdrahtet und heißt sambc (kann aber leicht ersetzt werden) und liegt auf dem gleichen Host, in der auch die Drupal-Datenbank liegt.
Anschließend erstellt man eine normale Drupal-Seite mit dem Format PHP code und fügt folgenden Code ein:
[Mehr]Blöcke in Drupal 7 nur bei bestimmter Taxonomie anzeigen
Mit Drupal 7 hat sich das Taxonomiemodul grundlegend geändert. Die Beispiele aus dem Web für ältere Drupal-Versionen enden schlimmstenfalls in einer komplett leeren Seite. Dann ist Handarbeit in der Datenbank angesagt.
Hier nun ein funktionierendes Beispiel, wie Blöcke in Drupal 7 anhand eines Taxonomiebegriffs des Nodes angezeigt werden können (einzufügen in den Sichbarkeitseinstellungen des jeweiligen Blocks):
<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) ) {
$node = node_load(arg(1));
$items = field_get_items('node', $node, 'field_tags');
if (is_array($items))
{
foreach($items as $term)
{
if ($term['tid'] == 7)
{
return TRUE;
}
}
}
return FALSE;
}
?>
Dabei wird davon ausgegangen, dass das Feld field_tags
die Taxonomiebegriffe enthält. Im Beispiel wird der Block nur angezeigt, wenn der Node den Taxononomie-Term 7 enthält.