2016-03-22 13 views
0

Nach Silvers DocsController-Aktionen Zurück

Aktionsmethoden können eine von vier wichtigsten Dinge zurück:

  • ein Array. In diesem Fall stehen die Werte im Array in den Vorlagen zur Verfügung, und der Controller wird wie gewöhnlich durch Zurückgeben einer SS_HTTPResponse mit dem body-Set an die aktuelle Vorlage abgeschlossen.
  • HTML. SilverStripe wickelt den HTML-Code in eine SS_HTTPResponse ein und setzt den Statuscode auf 200.
  • Eine SS_HTTPResponse, die einen manuell definierten Statuscode und Text enthält.
  • eine SS_HTTPResponse_Exception. Ein spezieller Antworttyp, der auf einen Fehler hinweist. Durch das Zurückgeben der Ausnahme kann die Ausführungspipeline alle Fehlerbehandlungsroutinen anpassen und anzeigen.

Meine Frage, wo kann ich erweiterte Erklärungen zu diesen finden?

+0

Suchen Sie nach einem [Link zu den Dokumenten] (http://api.silverstripe.org/3.1/class-SS_HTTPResponse.html), oder? Ich bin mir nicht sicher, was für eine erweiterte Erklärung du suchst. – Ohgodwhy

+0

ja jede endgültige Anleitung. –

Antwort

1

Je nachdem, was Sie mit "definitiv" meinen, könnten Sie enttäuscht sein. Während Bemühungen unternommen werden, wird oft ein Großteil der (insbesondere API) Dokumente von Zeit zu Zeit etwas veraltet.

Ihre zwei Quellen von docs (kurz den Code wörtlich zu lesen) sind:

http://docs.silverstripe.org http://api.silverstripe.org

Ich nehme an, Sie werden den letzteren, wobei in diesem Fall möchten Sie die Suche verwenden möchten für Controller::handleRequest Dinge zu folgen, denke ich. Sie sprechen über Controller-Aktionen, aber das Gleiche gilt grundsätzlich für jede Art von Ausgabe mit Rückgabe.

Rückgabe: string | array | object.

String ist im Grunde direkte Ausgabe (aber weiter durch die Verarbeitungspipeline zunächst, wie zum Beispiel gegenüber. echo 'direct output';. Ich glaube, dass die Zeichenfolge gibt es Annahmen um in Bezug auf den Header-Einstellungen (IIRC es standardmäßig denken, es ist HTML, oder haben könnten einfache heuristische Tests), so sollte in der API-Dokumentation/code prüfen auf.

Array eine einfache Verknüpfung ist, die als Rückkehr $this->customise($thatSameArray); effektiv die gleiche ist (verwenden Sie die api Link oben und die Suche nach Controller :: anpassen)

Objekt ist entweder ein RequestHandler oder ein Antwort Objekt (wie Ihr Snippit sagt). Wenn ein RequestHandler zurückgegeben wird, wird er ausgeführt (es sei denn, es ist zB $ this, und bereits ausgeführt). Eine Antwort ist, was es auf der Dose sagt; Ein Objekt verkapselt Ausgabe, einschließlich Antwortcode, Körper, etc.

Dies ist alles von der Spitze meines Kopfes, so sollte über den obigen Link überprüft werden (was wiederum ist doxygen Stil erzeugt Dokumentation, so ist in der enthalten Code, aber ist ein Schritt aus dem Lesen des Codes selbst).

Verwandte Themen