Hallo zusammen,
ich versuche momentan eine eigene TWIG Funktion zu erstellen, die ich in meinen Template-Dateien aufrufen kann um die Funktionalität meines Themes zu erweitern.
Laut den TWIG und Shopware Dokus kann hierzu ein Service dienen der im eigenen Theme registriert und verwendet werden kann.
Ich habe also basierend auf den entsprechenden Dokus die Erweiterung erstellt:
ThemeOrdner/src/Twig/myExtension.php:
und anschließend eine services.xml mit autowire Option erstellt:
ThemeOrdner/src/Resources/config/services.xml:
Dadurch sollte es ja eigentlich möglich sein, mittels {{ twigFunktion }} die Ausgabe von “Hallo Welt!” im Twig-Template zu ermöglichen.
Ich bekomme beim theme:compile allerdings immer eine Fehlermeldung:
Expected to find class "App\Twig\myExtension" in file "/mnt/shared/shopware/base/www/custom/plugins/ThemeOrdner/src/Twig/myExtension.php" while importin
g services from resource "../src/*", but it was not found! Check the namespace prefix used with the resource.
Mache ich hier irgendwas grundsätzliches falsch? Die class ist doch da! Stimmen die Pfade zur myExtension.php und services.xml? Ich habe auch schon gelesen, dass evtl. der composer autoloader entsprechend ergänzt werden muss. Habe ich wie folgt getan:
"autoload": {
"psr-4": {
"ThemeOrdner\\": "src/",
"App\\": "src/"
}
},
und dann ein composer dump-autoload ausgeführt. Gleiches Ergebnis: Ich bekomme besagt Fehlermeldung.
Ich wäre dankbar, wenn mir jemand sagen könnte ob meine Vorgehensweise grundsätzlich richtig ist oder ob das so gar nicht funktionieren kann. Evtl. gibt es ja auch eine schönere Methode das zu erreichen, was ich möchte.
Bin für jeden Hinweis dankbar