Wie erstellt man einen benutzerdefinierten Schaufenster-Controller in Shopware 6?

In diesem Blogbeitrag erfahren Sie, wie Sie einen benutzerdefinierten Schaufenster-Controller in Shopware 6 erstellen können.

Voraussetzungen

Zunächst müssen Sie Ihr eigenes benutzerdefiniertes Plugin als Grundlage erstellen. Dazu können Sie dieses Tutorial zur Plugin-Basis befolgen.

Erstellen Sie in Ihrem Plugin-Verzeichnis custom/plugins/( YOUR_PLUGIN ) die Datei routes.xml in folgendem Pfad: src/Resources/config/routes.xml und fügen Sie den folgenden Code hinzu.

<?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
        https://symfony.com/schema/routing/routing-1.0.xsd">

   <import resource="../../Storefront/Controller/**/*Controller.php" type="annotation" />

</routes>

Lassen Sie uns nun den Container in den Controller einbinden. Erstellen Sie die Datei services.xml in diesem Verzeichnis: src/Resources/config/services.xml und fügen Sie den folgenden Code hinzu.

<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>

        <service id="SwagBasicExample\Storefront\Controller\ExampleController" public="true">
            <call method="setContainer">
                <argument type="service" id="service_container" />
            </call>
        </service>

    </services>

</container>

Jetzt müssen wir nur noch die Controller-Datei unter dem Pfad: src/Storefront/Controller/ExampleController.php erstellen und den folgenden Code hinzufügen.

<?php declare(strict_types=1);

namespace SwagBasicExample\Storefront\Controller;

use Shopware\Core\Framework\Routing\Annotation\RouteScope;
use Shopware\Core\Framework\Routing\Annotation\Since;
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 ExampleController extends StorefrontController
{
    /**
     * @Route("/hello-world", name="frontend.helloworld", methods={"GET"})
     */
    public function helloworld()
    {
        echo 'This is the first storefront controller which we just created!';
        exit;
}

Jetzt haben wir einen Controller, der in Shopware 6 funktioniert! Besuchen Sie Ihre Website: example.com/hellow-world. Sie können die Ausgabe im folgenden Screenshot sehen.

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.