In den Artikel von 14 Mai 2010 „Cachen mit DBM Dateien“ haben PHPGangster und ich darüber diskutiert wie ein Caching Verfahren mit DBM Dateien etwa aussehen könnte. Damals war das noch eine grobe Idee und nicht jeder konnte sich was darunter vorstellen, ob das gut funktionieren könnte. Da man eben die DBA Extension in PHP neu konfigurieren muss. Sprich, das PHP musste neu Gebacken werden. Also, durch die Verwendung der Konfigurationsoption –enable-dba=shared wird ein dynamisch ladbares Modul erstellt, mit dem PHP eine grundlegende Unterstützung von dbm-style-Datenbanken bietet. Es muss außerdem die Unterstützung für mindestens einen der folgenden Handler hinzugefügt werden, indem der configure-Schalter –with-[dba-handler] im PHP Konfigurationsaufruf angegeben wird. Das erschreckte mich nicht, in Gegenteil, ich nahm das als Ansporn und erstellte kurzerhand die erste Version der „CacheDba“ Library. Nun, seit dann bis heute ist einiges passiert. Hier mein Update für euch.
DbaCache
Die DbaCache-Library war die erste Entwicklung. Es ist eine unabhängige PHP Library. Eigentlich sollte das ein Prototyp werden. Jedoch zeigte sich der Einsatz als sehr leicht und vor allem sehr schnell. Andere Entwickler und mir war wichtig ein Caching Mechanismus zu haben, das genauso schnell wie Memcache ist und nie überlaufen kann. Mittlerweile ist die DbaCache-Library auf diverse Open-Source Portale zur download bereitgestellt und wird gerne runter geladen sowie aktiv eingesetzt. Mehr freut es mich, dass es doch noch Jungs gibt die gerne bereit sind ihr PHP auf der Produktiv-Umgebung neu mit DBM zu konfigurieren bzw. umzustellen. Ich weiß, dass es nicht immer ohne ist. :-)
Link: https://github.com/gjerokrsteski/php-dba-cache
Zend_Cache_Backend_Dba bei ZF1
Kurz danach, quasi über Nacht, habe ich die Komponente Zend_Cache_Backend_Dba entwickelt und ebenfalls auf GitHub bereitgestellt. Es dauerte nicht lange, dann würde der Marc Bennewitz von ZF darauf aufmerksam und bat mich die Komponente zu refaktorisieren und ein Backport auf ZF1 zu machen. An dieser Stelle – Marc vielen Dank für das tolle Code-Review. Deine Tipps habe ich ebenfalls in der DbaCache-Library nachgezogen.
Link: https://github.com/gjerokrsteski/zf1
Zend\Cache\Storage\Adapter\Dba bei ZF2
Nun, wie ihr bereits wisst ist dass ZF2 komplett auf Namespaces umgestellt und bietet eine Menge an Scafolding Mechanismen, die den Alltag um einiges erleichtern. In ZF2 hat der Marc Bennewitz basierend auf ZF1 das DBA Caching als ein Cache\Storage\Adapter implementiert. Das ganze befindet sich noch in der Entwicklung – sieht aber bereits jetzt ganz solide aus. Bitte fühlt euch frei ein ZF Contributor zu werden und diese Komponente weiter zu entwickeln.
Link: https://github.com/gjerokrsteski/zf2
Ja, das war’s eigentlich. Es würde mich sehr freuen, wenn der eine oder andere die oben genannten Komponenten auf GitHub forkt und sie ebenfalls ausprobiert und mir ein Feedback gibt. Rock on!!!
Netter Post. Sicher nicht verkehrt, sich mit dem Thema im detail zu beschaeftigen. Ich werde auf jeden Fall weitere Posts verfolgen.