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.






