Routing in Contao 4

für Entwickler

Einstieg in das Routing Konzept für Umsteiger von Contao 3


Bonus 1 - Routing ohne Annotations

Glen Langer

Version: 1.0.0 vom 02.02.2018

Worum geht es?

  • Contao Nordtag 2018:
    Routing Definitionen über Annotations im Controller
  • Hier nun Routing ohne Annotations,
    Angaben alle in der routing.yml
  • Theorie und Praxis
    neue Version der contao-routing-app

routing.yml für die FE Route

Die Annotation-Angaben der Controller Klasse und der Action Methode werden in die routing.yml übertragen.

In den folgenden Beispielen sind Ausschnitte der routing.yml aus der Demo zu sehen:

routing.yml für die FE Route

frontend_demo:
    path:     /routingapp_fe/demo/{height}/{width}
    defaults: 
        _controller: BugBusterRoutingappBundle:Frontend:demo
        _scope: frontend
        _token_check: false
        height: 0
        width:  0
    requirements:
        height: '\d+'
        width: '\d+'

Einige Erläuterungen

  • frontend_demo: Name der Route,
    vorher @Route ...name="frontend_demo"
  • path: Zusammengesetzter Pfad der Route
  • _controller: Angabe in der Form "Bundle:Controller:Methode"
    Magie von Symfony: "Controller" und "Action" werden angehangen.
    "AppBundle:Blog:show" wird intern zu "AppBundle:BlogController:showAction"
  • Für "height" und "width" sind hier Defaultwerte definiert,
    nicht mehr in der Methode

routing.yml für die BE Route

Die Annotation-Angaben der Controller Klasse und der Action Methode werden in die routing.yml übertragen.

In dem folgenden Ausschnitt der routing.yml aus der Demo sind nur die Angaben für eine der Backend Routen zu sehen:

routing.yml für BE Main Route

backend_maintest:
    path:     /routingapp/main
    defaults: 
        _controller: BugBusterRoutingappBundle:Backend:bemain
        _scope: backend
        _token_check: true
        _custom_backend_view: true
        _backend_module: bemain

Hinweis zum Twig Template

  • Da Annotation @template entfällt, Ersatz durch Anpassung im Controller nötig
  • Siehe Demo Quelltext:
$this->render(Template Pfad, Key=>Value Angaben);

Bundle Demo Sourcecode

Auf GitHub

  • Version 1.0.0: Entspricht dem Stand zum Zeitpunkt des Contao Nordtag Vortrages
  • Version 2.0.0: Routing ohne Annotations, alle Angaben in der routing.yml

BugBuster1701/contao-routing-app

Happy Coding!

Contao Ninja

 

Aktuelle Version dieser Folien auf: docs.contao.ninja

(auch als PDF und später auch als Video)