knollsen wrote:Zumals gibt es auch keine Probleme beim spliten der CSV Datei mehr, da ja viele Kunden Copy/Paste von Webseiten oder Word machen, kann es vorkommen das ein Trenn-Zeichen (delimiter) vorhanden war und alles ging nicht mehr. Das einzige was jetzt noch in der CSV ist, ist Datum, Titel und Erstellungsdatum.
Ja, das kann man ganz gut so machen. Beim Realblog_XH habe ich auch darüber nachgedacht, aber die Teaser haben mich doch eine andere Lösung wählen lassen. Das Problem: die Übersichtsseite zeigt ja mehrere Teaser gemeinsam an (der User kann die Anzahl konfigurieren). Stehen alle Teaser in einer (CSV-)Datei, dann wird diese doch recht groß, und muss i.d.R. komplett geladen werden. Speichert man auch die Teaser in separaten Dateien, dann müssen eben entsprechend viele Dateien gelesen werden – das kann dann auch wieder ausbremsen. Dazu kommt, dass auch das Einlesen und Sortieren (nach u.U. unterschiedlichen Kriterien) der Hauptdatei Zeit kostet (usort() & Co. sind ziemlich langsam).
Wenn ein Plugin also voraussichtlich größere Datenmengen zu verwalten hat, würde ich immer auch SQLite in Erwägung ziehen. Da hat man viel Luft nach oben, kann auch unerwartete Anforderungen einpflegen, ohne dass die ursprünglich ausgearbeitete individuelle Speicherform hinfällig wird (was mit z.B. bei Forum_XH passieren könnte), und man kann sehr speichereffizient arbeiten (bei Realblog_XH werden nur diejenigen Daten, nicht Datensätze, geladen, die auch wirklich gebraucht werden).
Ich glaube, ich hatte es weiter oben schon kurz erwähnt: ich habe eine ganze Reihe alternativer Speicherformate ausprobiert (u.a. auch CSV-Dateien, die in einem serialized Format gecache't werden, weil zeilenweises Lesen in PHP super langsam ist; man vergleiche fgets() und file()) – nur in Einzelfällen konnte ich die Performance von SQLite (also ext/sqlite3, nicht ext/pdo_sqlite) toppen, aber nie für alle Fälle, die ein Plugin wie Realblog_XH unterstützen muss. Und einen weiteren Vorteil hat SQLite auch noch: Online-Locks erfolgt automatisch, und optimistische Offline-Locks sind sehr einfach und effizient zu realisieren.
Der einzige Nachteil, den ich bei SQLite sehe (abgesehen davon, dass es für viele Plugins Overkill ist): man kann die Daten nicht per Texteditor/Tabellenkalkulation bearbeiten. Aber einerseits ist ein Export nach und Import von CSV möglich, und andererseits gibt es
hilfreiche Tools, die nach kurzer Einarbeitungszeit eine wunderbare Alternative bieten.