Du hast eine eigene Suche für Magento-Extensions programmiert. Was sind die Unterschiede zur Suche auf Magento Connect selbst?
Varien verwendet auf Magento Connect einfach die Googlesuche mit dem „site“-Parameter. Man kann jedoch, wenn man viel Zeit, hat ein paar grobe Filter setzen und dann wie in einem Katalog blättern. Bei mir sucht man direkt nach den Modulen - ob Community oder Commercial. Zusätzlich kann man dann mit Filtern das Suchergebnis eingrenzen. Als großen Pluspunkt sehe ich jedoch die Anzeige der Abhängigkeiten der Module. Das sind momentan drei Stück:
- 1. rewrite, welche Klassen überschreibt das Modul
- 2. events, welche Events/Hooks benutz das Modul
- 3. depends, welche Abhängigkeiten bestehen zu anderen Modulen
Zusätzlich kann man sich ohne Pear das Modul einfach so auf seinen Rechner herunterladen, um dann ggf. mit Anpassungen das Modul zu installieren.
Ich hatte am Anfang das Problem, dass manchmal die Seite bei mir nicht aufgehen wollte. Zudem wusste ich, dass es ein bestimmtes Modul gibt, ich es aber nicht finden konnte. So kam ich auf die Idee, einen eigenen Suchindex zu generieren.
Kannst Du etwas zu den technischen Lösungen verraten? Wie hast Du es umgesetzt?
Es gibt einen Crawler, der die Modulseiten ein Mal am Tag ansurft, dieser ist in PHP geschrieben. Die Daten, die dabei ausgelesen und in einigen Fällen gefiltert werden, schreibe ich temporär in eine CouchDB Datenbank. Von der Datenbank generiere ich mir dann einen Suchindex mit dem Apache Solr. Also nicht wirklich viel Magie ;-)
Wie viel Zeit hast Du darin investiert? Und was war dabei der größte Zeitfresser?
Wenn man die Stunden zusammenzählt bestimmt zwei Wochenenden. Der größte Zeitfresser ist mit Abstand der crawler. Die Daten sauber von der Seite auszulesen ist nicht so trivial wie ich am Anfang noch gehofft hätte. So gibt es leider auch noch vereinzelt Fehler bei meiner Suche.
Hast Du vor, das Projekt noch zu erweitern, zu verändern, zu verbessern?
Ja, sehr gerne sogar, da das Feedback der Community sehr positiv war. Diese hatte mir immer wieder Anregungen gegeben, um Sachen zu verbessern oder hinzuzufügen. Als nächstes werde ich wohl eine API für externe Entwickler erstellen. So können diese in ihren eigenen Anwendungen auf die Datenbasis zurückgreifen. Zudem hoffe ich, eine Art Revisionssystem für die Module erstellen zu können.
So kann man eventuell eine ältere Modulversion verwenden, wenn die neuere einen hässlichen Bug enthalten sollte. Wenn man so viele Daten sammelt, würde ich auch gerne paar Statistiken veröffentlichen, aber das liegt dann doch schon mehr in der Zukunft. Eventuell findet sich ja auch einer, der mir ein schönes Design erstellt. ;-)
Hier geht es zu Damians Magento-Extension-Suche...








![Open Source: 98% aller Unternehmen setzen sie ein [mit Infografik]](http://t3n.de/uploads/t3n-news-post-332856_apache_18938_medium.jpg)
