Glen Langer
Version: 1.0.0 vom 27.01.2018

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.
URLs (Pfade) können dynamisch generiert werden über Name der Route
Beispiel: aus /blog soll /neues werden
wo Routing da auch Controller
Controller: PHP-Methoden (Actions) in einer Klasse (Action-Container)
Informationen aus dem Request-Objekt von Symfony
statische Teile ( contao/install )
dynamische Teile möglich (Part in geschweiften Klammern)
blog_list /blog/{page}
blog_show /blog/{slug}
Beispiel-URLs: /blog/2, /blog/routing
Problem!
Wenn zwei Routen mit derselben URL übereinstimmen, gewinnt die erste geladene Route
blog_list /blog/{page}, requirements={"page": "\d+"}
blog_show /blog/{slug}
blog_list /blog/list/{page}
blog_show /blog/show/{slug}
visitors_frontend_screencount /visitors/screencount
..."_scope" = "frontend"
contao_frontend /{alias}.html
contao_index /
contao_catch_all /{_url_fragment}
contao_backend /contao
contao_backend_login /contao/login
visitors_backend_details /visitors/details
..."_scope" = "backend"
"_token_check" = true
Entspricht der Contao 3 Variante Callback Modul statt Definition über DCA
backend_main /bemain/botstatistik
... "_scope" = "backend"
"_token_check" = true
"_custom_backend_view" = true
Benötigt EventListener, DependencyInjection, Twig Template, Hook Registrierung
Defintion der Routen über Annotations im PHPDoc Bereich des Controllers
Annotations bis Symfony <3.4 nicht von Symfony sondern als SensioFrameworkExtraBundle
Alternative ab Symfony 3.4 möglich: Componente nutzen
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
Hinweis auf die Annotations in Resources/config/routing.yml
Contao Manager Plugin wird angewiesen die routing.yml zu laden
Registrierte Routen anzeigen:
vendor/bin/contao-console debug:router
Route testen:
vendor/bin/contao-console route:match "/blog"
Routing
Controller
Template
Annotations
Dann los!
Aktuelle Version dieser Folien auf: docs.contao.ninja
(auch als PDF und später auch als offizielles Video)