Ich habe ein Modul über die Drupal-Konsole erstellt. Leider wurde es nicht in einem eigenen Ordner abgelegt, sondern direkt in /modules/custom. Bevor ich bemerkte, wohin es gegangen war, aktivierte ich das Modul.
In Drupal 6/7 war dies einfach zu beheben - ich konnte buchstäblich nur die Dateien in den richtigen Pfad einfügen, den Cache leeren (vielleicht die Registrierung neu erstellen, es war keine exakte Wissenschaft) und alles war gut.
Das gleiche gilt nicht für Drupal 8; Ich habe die Dateien in einen Unterordner verschoben, den Cache neu erstellt und alle Anfragen haben mir mitgeteilt, dass Drupal keine erforderliche Datei enthält. Die bestimmte Datei ist eine Blockklasse, und der Pfad, den Drupal zu finden versucht, befindet sich dort, wo sie sich früher befand , und nicht dort, wo ich sie verschoben habe.
Das bisschen Code-Einspruch ist in Symfony's ApcClassLoader, also muss ich wohl etwas löschen, das etwas über Drupals Kopf liegt, um diese Pfadreferenz zu aktualisieren.
Wie kann ich das machen?
Das Deinstallieren und erneute Installieren des Moduls funktioniert, aber sobald wichtige Daten gespeichert sind, ist dies keine Option mehr.
Ich habe mich geirrt, Deinstallation und Neuinstallation sind keine praktikable Option. Nach der Deinstallation und Neuinstallation kann Drupal die vom Modul definierten benutzerdefinierten Blöcke nicht mehr abrufen. Ich vermute, dass die Referenz an einer Stelle zwischengespeichert wird, die bei der Deinstallation des Moduls nicht gelöscht wird. Ich muss nur herausfinden, wo das ist und wie ich es klären kann ...
ApcClassLoader::findFile()immer den falschen Weg aus apc_fetch()oder ist der dekorierte Class Loader den falschen Weg der Rückkehr?