Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Routing - Cannot load resource "@App/Controller/". (Symfony 4)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Routing - Cannot load resource "@App/Controller/". (Symfony 4)

    Hallo!

    Wollte mich heute mal mit Symfony 4 auseinandersetzen, da es ja morgen released werden sollte.

    Fängt allerdings schon toll an, nicht einmal das Routing funktioniert:

    Code:
    app:
        resource: "@App/Controller/"
        type: annotation
    PHP-Code:
    <?php

    namespace App\Controller;

    use 
    Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use 
    Symfony\Component\HttpFoundation\Request;
    use 
    Symfony\Component\Routing\Annotation\Route;

    class 
    DefaultController extends Controller {

        
    /**
         * @Route("/", name="index")
         */
        
    public function indexAction (Request $request) { }

    }
    [Symfony\Component\Config\Exception\FileLoaderLoadE xception]
    Cannot load resource "@App/Controller/". Make sure the "App" bundle is correctly registered and loaded in the application kernel class. If the bundle is registered, make sure the bundle path "@App/Controller/" is not empty.

    Weiß jemand was ich falsch mache?

    Update
    Ohne Annotations funktioniert es (will ich aber natürlich nicht):

    Code:
    index:
        path: /
        defaults: { _controller: 'App\Controller\DefaultController::index' }

  • Zeichen32
    antwortet
    Da stimme ich dir zu, eine .gitignore an der Stelle macht für mich auch nicht soviel Sinn.

    Einen Kommentar schreiben:


  • sboesch
    antwortet
    Zitat von Zeichen32 Beitrag anzeigen
    Hast du auch composer require annotations ausgeführt? Das muss man in Symfony4 jetzt auch einzeln machen wenn man mit der skeleton App anfängt.

    http://symfony.com/doc/current/page_...otation-routes
    Super - vielen Dank, das wars!

    Da wär ich nie darauf gekommen, da Symfony\Component\Routing\Annotation\Route bereits im skeleton vorhanden ist.

    Interessanterweise wurde mir die config/routes/annotations.yaml jedoch falsch konfiguriert. Musste es ändern von:

    Code:
    controllers:
        resource: ../../src/Controller/
        type: annotation
    zu:

    Code:
    controllers:
        resource: ../src/Controller/
        type: annotation
    Macht zwar keinen Sinn für mich, aber sonst erhalte ich:
    Cannot load resource "../../src/Controller/". Make sure annotations are enabled.
    Danke jedenfalls!

    PS: Wenn ich gerade noch eine Frage ergänzen darf die kein eigenes Thema Wert ist, was macht die .gitignore in src/Controller/ ?
    Ist eigentlich der letzte Ort wo ich mir eine erwarten würde.

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    Hast du auch composer require annotations ausgeführt? Das muss man in Symfony4 jetzt auch einzeln machen wenn man mit der skeleton App anfängt.

    http://symfony.com/doc/current/page_...otation-routes

    Einen Kommentar schreiben:


  • sboesch
    antwortet
    Zitat von Zeichen32 Beitrag anzeigen
    Dann hast du irgendetwas falsch konfiguriert oa. Ich habe heute noch ein Projekt angefangen mit Symfony4. Und die Controller werden definitiv automatisch geladen.
    Bist du ggf. im Prod Modus und hast den Cache nicht geleert? Dann muss du erst den Cache leeren, damit die Annotation neu verarbeitet werden.
    Echt komisch.
    Bin seit SF2 dabei - an Cache oder Environment scheitert es nicht.

    Habe es gerade nochmal versucht:
    Code:
    $ composer create-project symfony/skeleton my-project
    $ cd my-project
    $ composer require symfony/web-server-bundle
    Dann Controller in src/Controller/ erstellt, sonst habe ich nichts angerührt.
    Code:
    $ php bin/console cache:clear
    $ php bin/console server:run
    Im Profiler werden die Routen auch nicht angezeigt.
    Naja, ich werde es dann in ein paar Tagen nochmal versuchen.

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    Dann hast du irgendetwas falsch konfiguriert oa. Ich habe heute noch ein Projekt angefangen mit Symfony4. Und die Controller werden definitiv automatisch geladen.
    Bist du ggf. im Prod Modus und hast den Cache nicht geleert? Dann muss du erst den Cache leeren, damit die Annotation neu verarbeitet werden.

    Einen Kommentar schreiben:


  • sboesch
    antwortet
    Zitat von Zeichen32 Beitrag anzeigen
    Du brauchst dies garnicht in der Routing.yaml definieren, da alle Controller unter App\Controller automatisch geladen werden.
    Steht auch so in der Doku: http://symfony.com/doc/current/routi...loading-routes
    Danke, aber leider nein...
    Ich denke mit "by default" in der Doku ist gemeint dass es standardmäßig einen Eintrag in der routes.yaml gibt, nämlich:

    Code:
    app:
        resource: "@AppBundle/Controller/"
        type:     annotation

    Einen Kommentar schreiben:


  • Zeichen32
    antwortet
    Du brauchst dies garnicht in der Routing.yaml definieren, da alle Controller unter App\Controller automatisch geladen werden.
    Steht auch so in der Doku: http://symfony.com/doc/current/routi...loading-routes

    Einen Kommentar schreiben:

Lädt...
X