Hallo,
aktuell habe ich folgende Problemstellung:
Ich arbeite an einer Erweiterung, welches einige Daten aus mehreren cdv-dateien importieren muss. Das Datenbank-Modell funktioniert soweit und die Datenbank ist auch als via DCA entsprechend definiert.
Bis Dato habe ich den Import über den TL_PURGE Hook gelöst, was soweit kein Problem ist. Mein Problem ist, dass ich bisher die Daten die importiert werden sollen manuell herunterladen muss (in ein bestimmtes Verzeichnis innerhalb des Erweiterungs-Bundle). Der Grund für das manuelle herunterladen ist, dass der Download ~1-2 Minuten durchaus dauern kann (die Downloadquelle unterliegt leider nicht meiner Kontrolle und die sind extrem langsam).
Mein Gedanke war jetzt, wie ich das ganze eventuell optimieren kann. Meine Idee war ein bin-script für das Erweiterungs-Bundle in der composer.json zu definieren, damit ich wiederum via Konsole den Download anstoßen kann (./vendor/bin/update-csv).
Aktuell stocke ich jetzt dabei, wie ich effektiv die Daten in die Datenbank bekomme, ohne jetzt den Nutzer den Import über die Weboberfläche unter „Systemwartung“ den Import anstoßen lassen zu müssen.
Mein aktueller Weg um meine TL_PURGE Klasse inkl. der Contao Datenbank-Klasse verwenden zu können ist aktuell:
PHP-Code:
define("TL_SCRIPT", „update-csv-database");
define('TL_MODE', 'FE');
use myname\bundlename\MaintanceCSVImport;
// Initialisiere Contao für Datenbank-Zugriff
require_once __DIR__ . "/../../../system/initialize.php“;
…
$maintance = new MaintanceCSVImport();
$maintance->importCSV();
Ich bin mir aktuell absolut nicht sicher, ob dieser Weg so optimal ist (auch was neuere Contao-Versionen angeht) und vielleicht hat auch jemand eine komplett andere Idee, wie man den Import realisieren könnte.
Gruß,
Jens
Lesezeichen