[SOLVED] Joomla 5 und Namespace
/usr/bin/php8.1-cli /homepages/5/d397498369/htdocs/natur/cli/joomla.php akeeba:backup:take
Symfony\Component\ErrorHandler\Error\ClassNotFoundError^ {#954
#message: """
Attempted to load class "JPlugin" from the global namespace.\n
Did you forget a "use" statement?
"""
#code: 0
#file: "/homepages/5/d397498369/htdocs/natur/plugins/system/bw_libregister/bw_libregister.php"
#line: 36
trace: {
/homepages/5/d397498369/htdocs/natur/plugins/system/bw_libregister/bw_libregister.php:36 {
require_once^
› */
› class PlgSystemBW_Libregister extends JPlugin
› {
}
/homepages/5/d397498369/htdocs/natur/libraries/src/Extension/ExtensionManagerTrait.php:217 { …}
/homepages/5/d397498369/htdocs/natur/libraries/src/Extension/ExtensionManagerTrait.php:160 { …}
/homepages/5/d397498369/htdocs/natur/libraries/src/Extension/ExtensionManagerTrait.php:99 { …}
/homepages/5/d397498369/htdocs/natur/libraries/src/Plugin/PluginHelper.php:232 { …}
/homepages/5/d397498369/htdocs/natur/libraries/src/Plugin/PluginHelper.php:192 { …}
/homepages/5/d397498369/htdocs/natur/libraries/src/Application/ConsoleApplication.php:255 { …}
/homepages/5/d397498369/htdocs/natur/cli/joomla.php:77 { …}
}
}
Wird das Namespace-Problem mit der nächsten Version gefixt?
Viele Grüße
Thomas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
danke für deine Meldung. Leider schreibst Du nichts zu den verwendeten Versionen, also frage ich mal meine Glaskugel:
- Joomla 5.0.0
- BwPostman 4.2.5
- AkeebaBackup 9.8.3
- php 8.1
Ich gebe zu, ich habe keine Ahnung, was Du mit cli-Backup meinst. cli ist klar, backup auch, aber wie das mit AkeebaBackup geht, weiß ich nicht. Vielleicht hast Du mir eine schnelle Erklärung oder einen Link? Dann könnte ich mal schauen, ob ich dein Problem nachvollziehen kann.
Grundsätzlich kann ich keinen Fehler in BwPostman sehen. Es funktioniert im Betrieb fehlerlos. Also muss AkeebaBackup etwas erwarten, was BwPostman nicht erfüllt.
Ich kann nur spekulieren:
Akeeba geht davon aus, dass Plugins unter Joomla 5 nach der neuen Methode geschrieben sind. Die Plugins von BwPostman sind aber "old school". Ich habe es bisher vermieden, die Plugins umzuschreiben, weil mit älteren Versionen von Joomla 4 nicht immer alles rund lief. Da die alte Methode aber erst mit Joomla 6 nicht mehr unterstützt wird, sehe ich da auch noch keine Eile.
Um deine Frage zu beantworten:
Ich werde in einer der nächsten Versionen von BwPostman (dauert etwas, ist ja immerhin ein Freizeitprojekt und meine Freizeit ist zur Zeit sehr, sehr knapp) die Variante Joomla 4 classic mit Namespaces (das ist eine Zwischenlösung zwischen old school und new school) einführen. Das dürfte auch in älteren Versionen von Joomla 4 problemlos funktionieren. Damit könnte das Problem mit AkeebaBackup gelöst sein.
Hth
Romana
Problem gelöst? Dann bitte auf gelöst klicken. Über ein Danke freue ich mich immer.
Problem solved? Please click to solved.I am glad to every thank you.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Danke für Deine schnelle Antwort.
Deine Glaskugel ist sehr gut aber nicht perfekt.
Joomla 5.0.0
PHP 8.2.12
BwPostman 4.2.5
Akeeba Backup 9.8.3 Pro
Die Unterschiede sind also marginal und haben auch keine Auswirkung auf das Problem.
CLI = Command Line Interface (weist Du ja)
Den Ordner "cli" findest Du in jeder Standard-Joomla-Installation.
Ich nutze Cronjobs um automatische Backups mit Akeeba Backup oder den Dateiänderungsscanner
mit Admin Tools durchzuführen.
Das Problem tritt auch erst seit Joomla 5 auf. Mit Joomla 4 ging es noch einwandfrei.
Es sind auch noch andere Erweiterungen betroffen.
Deaktiviert man diese (wie auch BwPostman) läuft der Cronjob einwandfrei durch.
In der Commandozeile ruft man die Funktion ganz einfach mit:
/path/to/php /pfad/zum/htdocs/verzeichnis auf.
z.B.
/usr/bin/php8.1-cli /homepages/5/d397498369/htdocs/natur/cli/joomla.php akeeba:backup:take
oder
/usr/bin/php8.1-cli /homepages/5/d397498369/htdocs/natur/cli/joomla.php admintools:scan
Die Fehlermeldung kommt auch nicht von Akeeba sondern vom System:
Symfony\Component\ErrorHandler\Error\ClassNotFoundError^ {#954
#message: """
Attempted to load class "JPlugin" from the global namespace.\n
Did you forget a "use" statement?
"""
#code: 0
#file: "/homepages/5/d397498369/htdocs/natur/plugins/system/bw_libregister/bw_libregister.php"
#line: 36
trace: {
/homepages/5/d397498369/htdocs/natur/plugins/system/bw_libregister/bw_libregister.php:36 {
require_once^
› */
› class PlgSystemBW_Libregister extends JPlugin
Die Klasse müsste dann in ungefähr so beginnen:
namespace Joomla\Plugin\System\erweiterung;
use Joomla\CMS\Factory;
use Joomla\CMS\Plugin\CMSPlugin;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
final class erweiterung extends CMSPlugin
Ich weis Deine Arbeit auch sehr zu schätzen und bin froh,
dass Du diese Komponente weiter entwickelst.
Viele Grüße
Thomas
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
danke für deine Erläuterungen. Damit kann ich wohl was anfangen.
Die Umstellung der Plugins auf die Variante Joomla 4 native ist im Gange und wenn alles gut läuft in den nächsten Tagen im nächsten Release enthalten.
Liebe Grüße
Romana
Problem gelöst? Dann bitte auf gelöst klicken. Über ein Danke freue ich mich immer.
Problem solved? Please click to solved.I am glad to every thank you.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Vielen Dank:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.