Ich erkunde ein paar PHP-Frameworks und der aktuelle Spitzenreiter ist Kohana.
Mit einem Rails-Hintergrund habe ich mich an das gewöhnt, was die Rails-Community "RESTful" -Routen nennt. Ein "GET / posts" zeigt also alle Beiträge an und wird von der Index-Methode des Post-Controllers behandelt. Ein "POST / Posts" erstellt ein neues Post-Objekt und wird von einer anderen Methode des Post-Controllers behandelt.
Da der Pfad in diesen beiden Anfragen identisch ist, muss der Router Entscheidungen basierend auf der HTTP-Methode treffen.
Ist der Router in Kohana dazu fähig?
Kohana unterstützt standardmäßig keine RESTful-Routen, aber es gibt ein RESTful -Modul, das Unterstützung dafür bietet. Siehe das RESTful-Wiki zur Verwendung.
Kohana v3.x unterstützt RESTful-Controller direkt. Erweitern Sie einfach Controller_REST
anstelle von Controller
und die gesamte Route-Aktion ist die Anfrage-Methode. (Eine POST
-Anforderung würde auf action_post
usw. ausgerichtet sein.)
Sie können diese Zeilen auch zur before () - Methode Ihres Controllers hinzufügen:
%Vor%GET / controller / posts werden also von der action_posts () Methode in Ihrem Controller behandelt, während POST / controller / posts von der action_post_posts () Methode behandelt werden.
PS: Der eingebaute Controller_REST wurde in Kohana 3.2 entfernt.
Die Überprüfung der HTTP-Methode im Klassenkonstruktor ist für mich ein schlechtes Design. Wie Rails kann Kohana 3.3 RESTful Routen im Router (wo sie hingehören) erstellen.
Sehen Sie sich die Dokumentation für Kohana 3.3-Routenfilter an.
Hier ist ein Beispiel:
%Vor%