Kann ich Routen in Kohana so einrichten, dass sie nur bestimmten HTTP-Methoden (GET / POST / etc) entsprechen?

8

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?

    
James Healy 15.07.2009, 00:25
quelle

3 Antworten

8

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.)

    
shadowhand 15.07.2009, 03:56
quelle
2

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.

    
flammel 19.08.2011 00:08
quelle
0

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%     
Jezen Thomas 30.11.2013 10:46
quelle

Tags und Links