10.3 PHP_Compat 

Besprochene Version: 1.3.1 | Lizenz: PHP-Lizenz 3.0 |
Klassendatei(en): HTTP.php |
Eine ideale Ergänzung zu PHP_CompatInfo stellt PHP_Compat dar. Mit dieser Klasse haben Sie die Möglichkeit, Funktionen bereitzustellen, die erst ab einer bestimmten PHP-Version verfügbar waren. Falls Ihr Server also beispielsweise PHP 4.1.0 unterstützt, ein spezifisches Script aber PHP 4.3.0 benötigt, kann diese Bibliothek die fehlenden Funktionen ergänzen. Hierbei ist zu beachten, dass nur PHP-eigene Funktionen wie z. B. array_chunk() ergänzt werden, nicht aber Erweiterungen wie MySQL-Funktionen. Welche Funktionen und Konstanten mithilfe des Pakets repliziert werden können, ist in der »End-user Documentation« unter http://pear.php.net/manual/en/package.php.php compat.components.php beschrieben.
Die einfachste Möglichkeit, alle Funktionen einer bestimmten Version zu replizieren, besteht in der Methode loadVersion(). Sie kann statisch aufgerufen werden und bekommt eine Versionsnummer nach PHP-Standard übergeben:
In der Variable $components ist nach diesem Aufruf die Information enthalten, welche Funktionalitäten ergänzt wurden. Hierbei handelt es sich um ein Array, bei dem der Name der Funktion oder der Konstante, die ergänzt wurde, als Schlüssel dient und der dazugehörige Wert, wenn kein Fehler aufgetreten ist, 1 ist.
Alternativ können Sie auch einzelne Funktionen oder Konstanten explizit laden. loadFunction() kann hierbei eine oder mehrere Funktionen ergänzen, und loadConstant() übernimmt diese Aufgabe für Konstanten. Beide Methoden bekommen einen Namen als String oder mehrere Namen als Array übergeben und liefern ein true oder false bzw. ein Array mit booleschen Werten zurück, um mitzuteilen, ob der Ladevorgang erfolgreich war.
require_once ('PHP/Compat.php'); // Laden einer Funktion $res=PHP_Compat::loadFunction('file_put_contents'); if (false==$res) { die ('Fehler! Funktion konnte nicht geladen werden'); } // Mehrere Funktionen in dem Array platzieren $func=array ('array_search', 'array_key_exists', 'array_combine' ); // Funktionen laden $erg=PHP_Compat::loadFunction($func); //Auf Fehler pruefen if (true==in_array(false, $erg)) { die('Mindestens eine Funktion konnte nicht geladen werden'); } // Einbinden der Konstante E_STRICT $erg=PHP_Compat::loadConstant('E_STRICT');