Experimente mit Zend Framework und CouchDB #1
Hallo ihr lieben,
zu unserem erstaunen hatten wir mal wieder etwas Zeit zu „spielen“.
Alle reden über Dokumenten Datenbanken wie CouchDB, auch wenn wir noch kein Projekt haben wo man dieses mal einsetzen kann, wollten wir doch mindestens mal grundlegend wissen wie man damit arbeitet.
Ein paar Dinge vorweg: CouchDB arbeitet über HTTP Requests, antwortet mit JSON und wurde vom Apache Team entwickelt.
Also Schritt 1, CouchDB installieren, das ist unter Ubuntu schnell erledigt:
sudo apt-get install couchdb
Aber auch unter Windows sollte die Installation kein ganz so großes Problem sein, eine ausführliche Anleitung findet ihr im CouchDB Wiki.
Danach sollte das Webinterface bereits aus dem Browser erreichbar sein:
http://localhost:5984/_utils/config.html
Da wir von einem anderen Rechner auf die CouchDB zugreifen, haben wir in der Konfiguration die DB an die richtige IP der „Ubuntu-Möhre“ gebunden, in unserem Falle: 192.168.2.102 (dieses geht im Webinterface unter configuration).
Die erste Verbindung zur Datenbank stellen wir mit der Hilfe vom Zend Framework und der Zend_Http_Client Klasse her, wir möchten hier nicht erklären wie man Zend Framework installiert/nutzt, wer Informationen braucht ist auf der Homepage von Zend gut aufgehoben.
Um es einfach zu machen nutzen wir ein mit Zend Tool erstelltes Projekt, und arbeiten ganz simpel in der indexAction des indexControllers, wir wollen ja nur spielen. Damit wir nicht für alles ein View Script benötigen haben wir den View-Renderer in der init Action des indexControllers deaktiviert.
public function init() { $this->_helper->viewRenderer->setNoRender(); }
Mit folgendenm Code Snippet kann man bereits sehen ob die Datenbank erreichbar ist:
public function indexAction() { // IP und Port der Datenbank $couchDb = 'http://192.168.2.102:5984'; $client = new Zend_Http_Client(); echo $client->setUri($couchDb) ->request('GET') ->getBody(); }
Nach dem Aufruf der indexAction im Controller sollte euch folgendes erscheinen:
{„couchdb“:“Welcome“,“version“:“0.10.0″}
Warum so ein komisches Format? Es ist JSON. Was die CouchDB für den Einsatz in Ajax Anwendungen natürlich recht interessant macht.
Um nun eine neue Datenbank anzulegen, erstellen wir die nächste Action im indexController „makedbAction“, diese bekommt folgenden Inhalt:
public function makedbAction() { // IP und Port der Datenbank $couchDb = 'http://192.168.2.102:5984'; $client = new Zend_Http_Client(); // Anzeigen version $result = $client->setUri($couchDb . '/limespacededb') ->request('PUT'); echo $result; }
nach dem Aufruf im Browser wird hoffentlich eine gute Nachricht ausgegeben:
HTTP/1.1 201 Created Server: CouchDB/0.10.0 (Erlang OTP/R13B) Location: http://192.168.2.102:5984/limespacededb Date: Wed, 11 Nov 2009 19:22:17 GMT Content-type: text/plain;charset=utf-8 Content-length: 12 Cache-control: must-revalidate {„ok“:true}
Weiter geht es dann in 2 – 3 Tagen mit dem Einfügen / Löschen und Ändern von Dokumenten.
2 Antworten
[…] im ersten Teil bereits angekündigt, gibt es Heute die Fortsetzung von unseren Versuchen mit dem Zend Framework […]
[…] das wir zu lange mit unseren beiden Artikel zum Thema Zend Framework und CouchDB beschäftigt [Teil1 – Teil2] […]