Weitere View-Typen
CSV
CSV
JSON
JSON
Eigene View-Typen
Du kannst auch eigene View-Typen erstellen. In diesem Beispiel erstellen wir eine Text-View, die den Helper $text
(TextBuilder
) zur Verfügung stellt. Erstelle dazu eine Klasse TextView
, die n2n\ui\view\View
erweitert:
namespace atusch\ui; use n2n\ui\view\View; use n2n\io\ob\OutputBuffer; class TextView extends View { public function getContentType() { return 'text/plain'; } protected function compile(OutputBuffer $contentBuffer) { parent::bufferContents(array('view' => $this, 'request' => $this->getRequest(), 'response' => $response, 'text' => new TextBuilder($this)); } }
Weitere Informationen zu den verschiedenen Methoden findest du in der [Thomas, Link]Api-Doc[/Thomas, Link]. Nun musst du diese View noch in der app.ini
unter der Gruppe [http]
registrieren und du kannst Views vom Typ "text" erstellen (z. B. foo.text.php
):
[web] view.type.text = "atusch\ui\TextView"
Eigene View-Typen zu definieren, macht nur Sinn, wenn du nützliche Helper zur Verfügung stellen kannst. Möchtest du zum Beispiele einen einfachen Response eines Typen generieren, für den keine View zur Verfügung steht, dann kannst du auch einfach n2n\http\SimpleResponseContent
nutzen:
class ExampleController extends ControllerAdapter { public function index() { $this->getResponse()->send(new SimpleResponseContent('text/plain', 'Simple Text Response')); } }