Weitere View-Typen

View
  1. CSV
  2. JSON
  3. Eigene 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'));
    }
}
« HTML Dependency Injections »

comments_title

post_login_to_create

questions_title