Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Symfony Grundkurs

Was ist eine Route?

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Das Routing bringt eine Anfrage (Request) mit der passenden Antwort (Response) zusammen. Dabei beschränken sich die Handlungsmöglichkeiten nicht auf die Pfadangaben, sondern es können auch zusätzliche Informationen hinterlegt werden.
07:22

Transkript

Um eine Seite darstellen zu können innerhalb von Symfony, braucht es zwei Hauptdinge. Das eine ist eine Route hin zu dieser Seite, und das Zweite ist der Controller, der diese Seite zusammenbaut. Aber wie diese Route tatsächlich bis zu dem Controller kommt, das ist die spannende Frage. In den Konfigurationseinstellungen die sich im "app"-Verzeichnis finden, gibt es eine eigene Routing-Datei. Ich öffne sie jetzt mit einem Doppelklick und das, was ich hier zu sehen bekomme, ist nicht wirklich dramatisch viel. Ich bekomme für jedes Bundle, das ich schon angelegt habe, jetzt Routinginformationen hier hinterlegt. Das eine ist das vorgegebene AppBundle, was wir hier sehen können. Hier ist die "resource" und die "resource" ist immer ein Controller und dann gibt es noch den Typ des Routings und das ist in beiden Fällen Annotation. Eine Annotation ist eine Anmerkung. Wir werden uns das gleich im Controller anschauen, wie sich das bemerkbar macht. Hier oben habe ich auf jeden Fall die Routing-Informationen zu meinem eigenen Bundle, nämlich zu meinem "PlanBundle" und auch hier ist der Typ des Routings wieder eine Annotation, aber hier habe ich auch einen Präfix mitgenannt, nämlich ein Wurzelverzeichnis. Das heißt, wenn ich versuche mein Bundle aufzurufen, dann besteht die Notwendigkeit, dass ich hinter dem bestehenden noch einen Schrägstrich setze und dann gegebenenfalls den Namen meiner Seite. Durch diese Form des Routings ist es möglich, dass auf eine Anfrage, die an das System herangetragen wird, adäquat reagiert werden kann und wie das jetzt innerhalb des Controllers aussieht, sehen wir uns als nächstes an. Das heißt, ich mache hier mal meine Konfiguration zu und gehe zuallererst mal in das vorgefertigte AppBundle und sehe mir hier noch mal den Controller an. Was ich hier habe, in diesem ausgegraut wirkenden Bereich, ist eben der Eintrag des Controllers, die sogenannte Annotation. Und diese Annotation beginnt immer mit einem "@Route" und dann eben kommt ein Ort, ein bestimmter Platz, an dem gesucht wird und optional gibt es dann auch noch die Möglichkeit einen Namen anzugeben. Der Name wird dann wichtig, wenn verlinkt werden soll auf diese spezielle Seite. Das wäre dann der Name, mit dessen Hilfe verlinkt werden kann und das Ergebnis von diesem Routeneintrag kennen wir schon, den finden wir nämlich, wenn wir unsere Seite aufrufen. Hier, da passiert noch gar nicht sehr viel, sondern es ist der Verweis, dass Symfony funktioniert. Das ist diese Index-Seite, die in den Ressourcen vom "app"-Verzeichnis hinterlegt ist. Das besondere hier mit dem Aufruf über "app_dev" ist, dass wir hier unten noch eine Toolbar dazubekommen, auf die ich dann später eingehen werde. Wichtig ist aber, dass Sie hier bitte darauf achten, dass die Wurzelausgabe sozusagen über das "web"-Verzeichnis läuft. Also das Routing beinhaltet durchaus auch, dass wir diesen Weg gehen müssen, über "web/app.php" wenn wir eine Außenansicht wollen oder "/app_dev.php", wenn wir diese Innenansicht mit der Toolbar haben wollen. Was jetzt aber passiert, wenn wir diesen "default"-Controller schließen, und dafür unseren eigenen Controller öffnen von unserem PlanBundle, dann habe ich hier so eine Kleinigkeit vorbereitet, die Ihnen zeigen soll, dass das Routing sich jetzt nicht einfach nur darauf beschränkt, einen Weg anzugeben, sondern dass man mit Hilfe dieses Routings, noch sehr viel mehr machen kann. Man kann nämlich dem Routing zum Beispiel Informationen mitgeben. In meinem Fall habe ich hier eine Variable hinterlegt und ich möchte ganz gerne, dass diese Variable dann bei der Ausgabe mitberücksichtigt wird. Was ich mir ausgeben lasse, das habe ich jetzt auch hier im Routing hinterlegt, ist mein Template, das in meinen "resources" und "view" liegt. Also mein Template, das hier in den "views" liegt, mein "/default/index.html". Und das deswegen, weil ich in der Klammer keinen weiteren Namen angegeben habe. Beim Routing habe ich jetzt allerdings noch einen Zusatz angegeben. Das heißt, ich möchte weiter routen auf ein Unterverzeichnis "hallo" und hier muss dann ein Name übergeben werden. Der Rückgabewert ist einfach nur ein Array, dessen einziger Inhalt eben ein Name ist oder eine Namensnennung und in meiner Index habe ich hier diesen Behälter für die Variable bereits hinterlegt, nämlich "hallo" und Name in dieser Twig-Konnotation mit diesen doppelten Klammern. Sehen wir uns das Ergebnis jetzt im Browser an. Wir haben gesagt, das ist der ursprüngliche Weg. Das heißt, wenn ich zu meinem "hallo" kommen will, muss ich sagen "/hallo". Nur wenn ich jetzt das pure "/hallo" angebe, bekomme ich natürlich Schelte von meinem Routing, denn ich habe darauf bestanden, dass ich hier noch eine Information mitgebe. Wenn ich also "hallo" sage, dann muss ich da jetzt zum Beispiel noch einen Namen eintragen und dann funktioniert das Ganze. Eine Eigenheit von Symfony ist jetzt das, dass die Ausgabe natürlich noch nicht optimal läuft. Es fehlt hier noch ein Beistrich und es wäre natürlich schön, wenn mein Name mit einem Großbuchstaben begänne. Das kann ich jetzt relativ einfach im Template regeln. Und zwar, indem ich jetzt nicht einfach hier was anders mache, sondern ich kann meiner Variablen jetzt noch einen Filter mitgeben. Einen Filter erzeuge ich, indem ich eine "pipe" setze und hier bekomme ich schon "capitialize" vorgeschlagen, das möchte ich auch machen und vielleicht noch einem Beistrich nach "hallo". Ich speichere jetzt meine Veränderungen und gehe zurück in meine Anzeige. Wenn ich jetzt die Anzeige neu lade, dann sehe ich, dass aufgrund meiner Veränderungen eben auch hier die Aufgabe angepasst wurde. Was ich Ihnen damit zeigen wollte, ist eben dieses prinzipielle Vorgehen, das beim Ausgeben einer Seite eine Rolle spielt. Ich brauche auf der einen Seite eben eine Routing-Angabe. Eine Routing-Angabe, die eben sagt, wo soll diese Ausgabe quasi erzeugt werden und im Controller wird mit Hilfe dieses Routing-Eintrags hinterlegt, was wo ausgegeben werden soll, und das Spannende ist eben, dass das Routing sich nicht nur darauf beschränkt, Pfadangaben wiederzugeben, sondern dass man dem Routing noch zusätzliche Informationen mitgeben kann.

Symfony Grundkurs

Steigen Sie in die moderne und flexible PHP-Entwicklung mit dem praktischen Framework ein.

2 Std. 35 min (34 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:18.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!