Shopware 6 verwendet ein Tool namens Twig Template Engine, um die Seiten auf der Website anzuzeigen. Sobald Sie verstehen, wie es funktioniert, werden Sie es einfach und anpassungsfähig finden. Wenn Sie wie ich ein Programmierer sind, der sich hauptsächlich mit dem PHP-Aspekt von Shopware 6 beschäftigt, müssen Sie vor allem lernen, wie man PHP-Variablen an Twig-Vorlagen übergibt. In diesem Artikel wird genau erklärt, wie man das macht.
Dumping der Variablen in Twig:
Zunächst müssen wir feststellen können, ob unsere PHP-Variable an die Twig-Vorlage übergeben wurde. Der Befehl „dump“ muss irgendwo in unserer Vorlage platziert werden, wie unten gezeigt.
{% block base_content %}
<p>Dump the variables of PHP in the twig template!</p>
{{ dump() }}
{% endblock %}
Jetzt können Sie das Frontend der Website aufrufen und sich das Ergebnis selbst ansehen, wie auf dem folgenden Screenshot zu sehen ist.

Klicken Sie auf die Dreiecke, um detailliertere Informationen zu erhalten. Mit der Tastenkombination Strg + F können Sie auch nach bestimmten Einträgen suchen, wobei der gesuchte Begriff hervorgehoben wird. Das ist sehr praktisch!

Sie können die gleiche Art und Weise verwenden, wie die Twig-Vorlagen-Engine auf Variablen zugreift, um eine einzelne Variable anzuzeigen. Wenn Sie zum Beispiel nur den Wert der Variable „currencyFactor“ anzeigen möchten, können Sie dies wie folgt tun:
{% block base_content %}
<p>Dump the variables!</p>
{{ dump( context.context.currencyFactor ) }}
{% endblock %}

Da wir nun wissen, wie wir die Variablen, auf die Twig zugreifen kann, anzeigen können, können wir auch unsere eigenen benutzerdefinierten Variablen an Twig übergeben.
Übergabe von Variablen an ein Twig-Template von einem Storefront-Controller.
Die typische Methode zur Erstellung eigener benutzerdefinierter Seiten mit eigenen benutzerdefinierten URLs ist die Verwendung von Storefront-Controllern. Das folgende Beispiel zeigt, wie der TestController eine Storefront-Seite mit einer Twig-Vorlage namens index.html.twig unter der URL-Adresse „example.com/test“ wiedergibt.
Benutzerdefinierten Controller erstellen (Pfad: – custom/plugins/YourCustomPlugin/src/Controller/TestController.php):
<?php
namespace YourCustomPlugin\Storefront\Controller;
use Shopware\Core\Framework\Routing\Annotation\RouteScope;
use Shopware\Core\System\SalesChannel\SalesChannelContext;
use Shopware\Storefront\Controller\StorefrontController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @RouteScope(scopes={"storefront"})
*/
class TestController extends StorefrontController
{
/**
* @Route("/test", name="frontend.testplugin.test", methods={"GET"})
*/
public function showPage(Request $request, SalesChannelContext $context): Response
{
return $this->renderStorefront('@YourCustomPlugin/storefront/page/test/index.html.twig', [
'customString' => 'Custom string value',
'customArray' => [ 'key1' => 'Value 1', 'key2' => 'Value 2' ]
]);
}
}
Erstellen Sie eine Twig-Vorlage (Pfad – custom/plugins/YourCustomPlugin/src/Resources/views/storefront/page/test/index.html.twig):
{% sw_extends '@Storefront/storefront/base.html.twig' %}
{% block base_content %}
<p>Dump the string!</p>
{{ dump( customString ) }}
<p>Dump the array!</p>
{{ dump( customArray ) }}
<p>Dump the value of key1 of the array!</p>
{{ dump( customArray.key1 ) }}
{% endblock %}
Erstellen Sie die Datei routes.xml (Pfad – custom/plugins/YourCustomPlugin/src/Resources/config/routes.xml):
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<import resource="../../Storefront/Controller/**/*Controller.php" type="annotation" />
</routes>
Dies führte zu dem folgenden Ergebnis, das unter der URL-Adresse „example.com/test“ angezeigt wird:

Bitte kontaktieren Sie uns unter manish@bay20.com oder rufen Sie uns unter +91-8800519180 an, wenn Sie Unterstützung im Zusammenhang mit Shopware benötigen. Sie können auch die Shopware-Entwicklungsseite besuchen, um die von uns angebotenen Dienstleistungen zu prüfen.






