composer require value3/csv-reader
use Value3\CsvReader\CsvReader;
$reader = new CsvReader();
/**
* CSV structure
*****************
* first_name,last_name
* Max, Mustermann
*****************
*/
foreach ($reader->read('path/some-file.csv') as $row) {
echo $row['name'] . PHP_EOL;
echo $row['last_name'] . PHP_EOL;
}
//working with streams
$fp = fopen('path/some-file.csv', 'r+');
foreach ($reader->read($fp) as $row) {
echo $row['name'] . PHP_EOL;
echo $row['last_name'] . PHP_EOL;
}
Auch im Jahre 2024 werden die meisten Daten mittels CSV-Dateien übertragen, selbst wenn inzwischen jeder über APIs spricht.
Hier sind einige Gründe, warum CSV-Dateien immer noch bei vielen Projekten eingesetzt wird:
1. Einfachheit:
CSV ist ein sehr einfaches Dateiformat, das von den meisten Programmen und Betriebssystemen unterstützt wird. Es ermöglicht einen unkomplizierten Datenaustausch und einfach über Http, FTP und sogar per E-Mail und über Chat übertragen werden.
2. Menschenlesbar:
CSV-Dateien sind reine Textdateien, die sogar mit einfachen Texteditoren geöffnet und bearbeitet werden können.
3. Keine proprietären Formate:
Im Gegensatz zu proprietären Formaten wie Excel-Dateien sind CSV-Dateien nicht an bestimmte Software gebunden. Sie können von jedem Programm gelesen werden, das das CSV-Format unterstützt.
4. Einfache Datenstruktur:
Die tabellarische Struktur von CSV-Dateien mit Zeilen und durch Trennzeichen getrennten Spalten ist einfach zu verstehen und zu verarbeiten.
5. Geringe Dateigröße:
Da CSV-Dateien nur Textdaten enthalten, sind sie in der Regel sehr kompakt und lassen sich schnell übertragen.
Obwohl es modernere Formate wie JSON oder XML gibt, bleibt CSV aufgrund seiner Einfachheit, Kompatibilität und breiten Akzeptanz ein wichtiges Dateiformat für den Datenaustausch.
Es gibt aber ein Problem. Man benötigt viel Memory um CSV-Dateien werden immer größer und größe CS-Dateien zu öffnen und zu importieren.
Aus diesem Grund haben eine PHP Library, mit der auch terabyte große CSV Dateien verarbeiten kann.
In den letzten Jahren habe ich hauptsächlich mit Spryker gearbeitet. Da ich mich jetzt schwerpunktmäßig mit
Shopware beschäftige, schaue ich mir auch den Code genauer an. Als die ersten Videos Shopware für
Entwickler gesehen habe, ist mir aufgefallen, dass die Developer-Experience bei Shopware verbesserungswürdig ist,
denn ist gibt einiges and "Duplicate-Logic", die man eigentlich vermeiden kann.