PHP Autoloader Work-a-round

PHP Autoloader Work-a-round

Stefan Koopmanschap zeigte in seinem Vortrag "Integrating symfony and Zend Framework" auf der IPC10 in Mainz wie man Komponenten mehrerer Frameworks sinnvoll in einem Projekt verwenden kann. Herzstück der Erklärung war die Verwendung der Autoloading Funktionalität von PHP. Der Vortrag war gut durchdacht, die Beispiele anschaulich gewählt. Ein Fall wurde allerdings nicht bedacht den ich im Folgenden inklusive einer passenden Lösung darstellen möchte.



Es gibt SDKs oder Bibliotheken die sich nicht an der PEAR Namenskonvention für Namespaces und Klassen halten so wie beispielsweise das Facebook PHP SDK. Im Grunde hat man nun zwei Möglichkeiten: Entweder schreibt man sich einen eigenen Autoloader der nur auf die Facebook Klassen reagiert oder aber man passt bringt die Facebook Klasse derart an dass der vorhandene Autoloader damit zu recht kommt. Da es keinen Sinn macht Änderungen an einer Third-Party-Library vorzunehmen, sieht die einfache Lösung wie folgt aus: Man erstellt sich eine zusätzliche Datei mit dem Namen Client.php und speichert diese im gleichen Verzeichnis ab. Der Dateiinhalt:



require_once(dirname(__FILE__).'/facebook.php');/**
* Facebook client wrapper class.
*/class Facebook_Client extends Facebook
{
}



Nun lässt sich die neue Facebook_Client Klasse recht einfach im vorhandenen Code verweden: $client = new Facebook_Client(); - der Autoloader erledigt den Rest.


Eintrag von Stephan Hochdörfer am 17.10.2010

Tags: Konferenzen, PHP

Diese Webseite verwendet Cookies, um die Bedienfreundlichkeit zu erhöhen. Mit der Nutzung unserer Webseite wird das Einverständnis erklärt, dass wir Cookies verwenden. Weitere Informationen.