Helper Klassen ansprechen in Joomla 4

  • Hallo Zusammen


    Eigentlich geht es um eine Komponenten Programmierung… keine Ahnung wo ich das am besten Platziere?!


    Kurze Einleitung: Wir haben vor 10 Jahren auf Access schnell eine DB für unsere Firma zusammengeklickt, dieses Projekt ist gewachsen. Letzten Winter fingen wir an, diese DB in eine eigne Joomla Komponente umzuwandeln, sodass wir dann hoffentlich irgendwann vom Access wegkommen.

    Ich muss aber ehrlich zugeben das ich mit der MVC Struktur nicht so vertraut bin… Das Grundgerüst der Komponente wurde im Component Creator erstellt, sodass eben schon das meiste wichtige funktioniert hat.

    Ich habe nun aus Neugier die Joomla 4 Version exportiert und die Seite auf Joomla 4 migriert. **



    Nun wir haben einige eigene Helpers erstellt – diese kann ich nun irgendwie nicht mehr einbinden.

    Die Datenstruktur hat sich ja auch leicht verändert – der offizielle Helper der Komponente wurde umbenannt:

    J3 > components/com_bkoffice/helpers/bkoffice.php

    J4 > components/com_bkoffice/src/Helper/BkofficeHelper.php



    In J3 habe ich einfach ein File «helpers.php» in den Ordner helpers erstellt.

    Zuoberst stand diese Zeile: JLoader::register('BkofficeHelper', JPATH_ADMINISTRATOR . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_bkoffice' . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'helpers.php');


    Die Class begann als class BkofficeHelpersHelpers {


    Angesprochen habe ich den Helper, resp. die Klasse im Helper mit:

    echo BkofficeHelpersHelpers::openListIcon('rechnungen','iconRight');



    Nun meine Überlegungen , bitte nicht lachen; wie gesagt hab ich noch so meine Mühe mit dem MVC und bin eigentlich auch kein richtiger Programmierer…


    - wenn aus bkoffice.php BkofficeHelper.php wurde; so würde aus meinem helpers.php HelpersHelper.php… neu im Ordner src/Helper

    - Neu Initialisieren mit namespace Bknamespace\Component\Bkoffice\Site\Helper;

    - Und die Klasse hiesse dann eher: class HelpersHelper {

    - Angesprochen mit echo HelpersHelper::openListIcon('rechnungen','iconRight');



    Funktioniert aber leider nicht. Class 'HelpersHelper' not found


    Könnte mir bitte jemand einen Tipp geben wo ich dies genau nachlesen kann, oder was ich falsch mache? Da wäre ich sehr froh – ich suche schon eine gefühlte Ewigkeit…


    Liebe Grüsse

    Maya




    ** Falls das jemand liest der daran beteiligt war – ein grosses Kompliment. Ihr habt die Migration wohl fast «tubelisicher» gemacht, wie wir Schweizer sagen würden.