2016-06-12 3 views
-2

Ich habe vor kurzem das Symfony-Framework untersucht, da ich es für einige Projekte verwenden möchte, aber bemerkt, dass das Routing äußerst umständlich ist, weil man etwas "Anmerkungen" nennt, die Kommentare über jedem Controller sind Methode.Symfony routing - Anmerkungen

Ist es möglich, eine routes.php-Datei zu erstellen und damit das Routing zu überschreiben und diese Annotationen vollständig zu deaktivieren? Da ich alle Routen in einer Datei haben möchte, ist es viel flexibler und wartbarer.

+1

Andere entfernen Routing Anmerkungen extrem bequem betrachten ändern. – cilefen

+0

Bevor Sie diesen Weg gehen, habe ich beide Annotationen/YML für das Routing in sehr großen Projekten verwendet und Anmerkungen sind meiner Erfahrung nach weit weniger von einer PITA. – Richard

+0

Ich kenne viele Frameworks, die Routen in einer einzigen PHP-Datei verwalten (meine persönliche Präferenz und die am besten zu wartende IMO), Symfony war die erste, die nicht und schien, als ob sie den ganzen Zweck brach. Ein Beispiel: Wenn Sie die Eingabe-Site umleiten möchten, können Sie einfach alle Routen an einen Ort leiten, ganz zu schweigen von Kommentaren, die den Status einer Anwendung beeinflussen. Das war nie der Zweck Kommentare wurden für – mhvvzmak1

Antwort

2

Sie können XML, Yaml, PHP oder Annotation für Routendefinitionen verwenden. Sie müssen nur this line in app/config/config.yml von

framework: 
    router: 
     resource: "%kernel.root_dir%/config/routing.yml" 

zu

framework: 
    router: 
     resource: "%kernel.root_dir%/config/routing.php" 

erstellen app/config/routing.php und app/config/routing.yml

+0

entworfen Die Datei "routing.yml" existiert nicht (in: C: \ inetpub \ wwwroot \ Sym \ demo \ app/config, C: \ inetpub \ wwwroot \ Sym \ demo \ app/Resources) in routing.yml (die aus "C: \ inetpub \ wwwroot \ Sym \ demo \ app/config/routing_dev.yml" importiert wird). – mhvvzmak1

+0

Das ist interessant ... wie haben Sie die Anwendung erstellt? Ich nehme an, dass Sie symfony-demo verwendet haben, aber die Datei [gibt es auch dort] (https://github.com/symfony/symfony-demo/tree/3ca2b94f387ca4a4206ccc667ae2d4e10fb75dae/app/config) ... Übrigens sollten Sie 'routing_dev 'ändern. Yml auch zu importieren 'routing.php' als die '_main' Ressource am Ende, um auch eine ordnungsgemäße dev-Umgebung (mit der Symbolleiste) zu haben. – 1ed

+0

Yup gut Ich habe eine neue leere Anwendung erstellt, ich musste einfach die _main in der dev.yml ändern, wie du sagtest und funktioniert wie erwartet :) – mhvvzmak1

2

Anmerkungen (für Routing, aber auch für andere Konfigurationen) sind in Symfony absolut nicht zwingend erforderlich. Wie Sie in den Dokumenten sehen können, können Sie YAML verwenden, um Ihre Routen zu definieren. Wie auch immer, die Verwendung von Anmerkungen ist eine bewährte Methode und ich empfehle Ihnen, sie zu verwenden, da es unmittelbarer ist, die Route an eine Aktion zu binden. Sie erhalten immer eine Liste aller Routen mit debug:routing Befehl

Verwandte Themen