it-swarm.com.de

Warum JFolder :: files "Pfad ist kein Ordner" für SQL / XML bei der Komponenteninstallation?

Beim Installieren/Deinstallieren meiner benutzerdefinierten Komponente wird der folgende Fehler angezeigt:

JFolder::files: Path is not a folder. Path: /var/www/joomla/administrator/components/com_mycomponent/sql/xml

Durch das Erstellen eines leeren Ordners xml wird der Fehler behoben. In meiner XML-Konfigurationsdatei oder an einer anderen Stelle, an der ich diesen Ordner aufrufen kann, befindet sich nichts, und ich kann nirgendwo eine Dokumentation darüber finden, warum ich diesen Fehler erhalte. Ich hoffe, jemand könnte darauf hinweisen, was es verursacht, und mir ersparen, den Kerncode zu durchsuchen, um es herauszufinden.

Was ist der Zweck dieses Ordners? Gibt es etwas, das angenommen darin sein soll?

BEARBEITEN: Hier ist ein Link zur XML-Konfigurationsdatei der Komponente und einer zur Installationsskriptdatei der Komponente) .

1
calligraphic-io

Ich denke, Ihr Problem beruht auf der Tatsache, dass FOF eine zusätzliche Installer-Klasse für Datenbanken und Schemas verwendet:

FOF wird mit der Klasse FOF30\Database\Installer geliefert. Im Gegensatz zu Joomla! Basiert es seine Aktionen nicht auf unzuverlässigen Versionsnummern. Stattdessen werden SQL-Befehle ausgeführt, die darauf basieren, ob Tabellen/Felder vorhanden sind, der gemeldete Feldtyp oder das Ergebnis der benutzerdefinierten SQL-Copublic-Funktion updateSchema ().

Daher wird empfohlen, zwei zusätzliche Funktionen - beispielsweise - in Ihr Installationsskript aufzunehmen (aufzurufen):

public function updateSchema()

Und bei der Deinstallation:

public function removeSchema()

Und Sie müssen eine XML-Schema-Datei mit Ihrer Komponente bereitstellen:

Die Schemadateien werden im XML-Format bereitgestellt. Sie benötigen nur eine XML-Datei pro Datenbanktechnologie. Standardmäßig werden diese Dateien im Back-End Ihrer Komponente im Verzeichnis sql/xml gespeichert. Dies können Sie über den Parameter $ directory überschreiben, den Sie an den Klassenkonstruktor übergeben.

Die vollständige Beschreibung der Gründe und der Verwendung der oben genannten Informationen finden Sie hier: https://github.com/akeeba/fof/wiki/The-XML-Database-Schema-Installer

Sie können die Verwendung der oben genannten Informationen in einer der Komponenten des FOF-Autors hier sehen: https://github.com/akeeba/akeebasubs/tree/development/component/backend/sql

Ich hoffe, dies gibt Ihnen etwas Licht auf das Thema.

1
Zollie