ExampleController - "\ExampleController does not exist"

Hallo,

ich habe einen ExampleController erstellt und bin exakt diesen Schritten gefolgt: Add custom controller - Shopware Developer

Dennoch erhalte ich folgende Fehlermeldung:

Class Swag\BasicExample\Storefront\Controller\ExampleController does not exist in /custom/plugins/SwagBasicExample/src/Storefront/Controller/ExampleController.php (which is being imported from "/custom/plugins/SwagBasicExample/src/Resources/config/routes.xml"). Make sure to use PHP 8+ or that annotations are installed and enabled.

Ich verstehe das nicht. Die Klasse ExampleController existiert in ExampleController.php. Ich verwende PHP 7.4, aber daran dürfte es doch nicht scheitern?

1 „Gefällt mir“

Doch, genau das sagt die Fehlermeldung aus. PHP 8 oder PHP 7 mit Annotations Modul.

Genau, dann würde ja der ganze Shop schon vorher nicht funktionieren.

Hast du in den Annotations die Werte vielleicht in Single-Quotes ' gemacht? Die müssen nämlich in Doppel-Quotes "

Falsch:

/**
 * @RouteScope(scopes={'storefront'})
 */

Richtig:

/**
 * @RouteScope(scopes={"storefront"})
 */

Hey, ja, sind Doppel-Quotes.
Ich verstehe das nicht. Es ist alles exakt so wie im verlinkten Tutorial. Daher verstehe ich nicht, woran es scheitern kann.

Irgendwas stimmt mit den Annotations nicht, mehr kann ich von hier auch nicht sagen. Zeig mal die Controller.php

<?php declare(strict_types=1);

namespace Swag\BasicExample\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 ExampleController extends StorefrontController
{
    /**
     * @Route("/example", name="frontend.example.example", methods={"GET"})
     */
    public function showExample(): Response
    {
        return $this->renderStorefront('@SwagBasicExample/storefront/page/example/index.html.twig', [
            'example' => 'Hello world'
        ]);
    }
}

Danke schon mal.

Hm, die sieht gut aus; zeig doch mal die routes.xml und servicxe.xml