Ankündigung

Einklappen
Keine Ankündigung bisher.

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

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

  • [Symfony] 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' }


  • #2
    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

    Kommentar


    • #3
      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

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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.

          Kommentar


          • #6
            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

            Kommentar


            • #7
              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.

              Kommentar


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

                Kommentar

                Lädt...
                X