2016-03-25 10 views
2

Nach dem Testen führt der folgende Code zu den gleichen Ergebnissen. Meine Frage ist, gibt es einen Unterschied zwischen den beiden überhaupt?Unterschied zwischen der erstellten Antwort in Silverstripe

public function someaction1(SS_HTTPRequest $request) { 
     $this->setResponse(new SS_HTTPResponse()); 
     $this->getResponse()->setStatusCode(400); 
     $this->getResponse()->setBody('invalid'); 

     return $this->getResponse(); 
    } 

    public function someaction2(SS_HTTPRequest $request) { 
     $this->response = new SS_HTTPResponse(); 
     $this->response->setStatusCode(400); 
     $this->response->setBody('invalid'); 

     return $this->response; 
    } 

Hinzufügen, ist die Rückgabe $ This-> Antwort; oder gib $ this-> getResponse() zurück; notwendig oder sind sie implizit?

+2

getX() und setX() sind [Mutator Methoden] (https://en.wikipedia.org/wiki/Mutator_method), lesen [warum sie zu verwenden] (http://stackoverflow.com/questions/1568091/wh y-Gebrauch-Getter-und-Setter) –

Antwort

1

Es gibt keinen Unterschied ist, öffnen Sie einfach die übergeordnete Klassendefinition und sehen, was getResponse() tut:

public function getResponse() { 
    return $this->response; 
} 

Wenn Sie HTTP-Fehler zurückgeben möchten, ist es besser zu nutzen

$this->httpError(400, 'invalid request'); 

(keine Notwendigkeit, zurückzukehren, da es eine Ausnahme auslöst)

Verwandte Themen