Welcome to the Cookbook

loading...

7.4 HTML

Der HtmlHelper wird in CakePHP benutzt, um HTML-basierte Ausgabe einfacher, schneller und stabiler gegenüber Änderungen zu machen. Wenn du diesen Helfer benutzt, dann wird deine Anwendung leichtgewichtiger und flexibler werden wenn sie unter einer Domain in Einsatz kommt.

Die Aufgabe von HtmlHelper hat sich seit CakePHP 1.1 sehr stark verändert. Die Methoden für Eingabeformulare wurden als veraltet markiert und befinden sich nun im neuen FormHelper. Wenn du Fragen zu HTML Eingabeformularen (Forms) hast, dann schau beim neuen FormHelper nach.

Bevor wir uns die Methoden von HtmlHelper anschauen ist es wichtig die Konfigurationen und Anwendungssituation von HtmlHelper zu kennen. Für diejenigen, die nicht so viele Shorttags (<?= ?>) oder viele echo() Aufrufe im Code mögen, wurde der HtmlHelper so geschrieben, dass alle Methoden direkt der output() Methode übergeben werden. Wenn die Ausgabe des HtmlHelpers direkt ausgegeben werden soll, dann kann man einfach die output() methode der AppHelper-Klasse implementieren.

function output($str) {
    echo $str;
}
  1. function output($str) {
  2. echo $str;
  3. }

Wenn man diese Methode implementiert muss man keine echo Aufrufe im View mehr schreiben.

Viele Methoden von HtmlHelper enthalten einen Parameter namens $htmlAttributes. Der Parameter erlaubt es dem HTML-Tag welches ausgegeben wird, beliebige weitere Attribute und Werte hinzuzufügen. Hier ein paar Beispiele wie man diesen Parameter benutzt:

Gewünschte Attribute: <tag class="someClass" />
$htmlAttributes Parameter: array('class'=>'someClass')

Gewünschte Attribute: <tag name="foo" value="bar" />  
$htmlAttributes Parameter: array('name' => 'foo', 'value' => 'bar')
  1. Gewünschte Attribute: <tag class="someClass" />
  2. $htmlAttributes Parameter: array('class'=>'someClass')
  3. Gewünschte Attribute: <tag name="foo" value="bar" />
  4. $htmlAttributes Parameter: array('name' => 'foo', 'value' => 'bar')

Der HtmlHelper ist in allen Views automatisch eingebunden und verfügbar. Sollte trotzdem eine Fehlermeldung erscheinen, die behauptet, dass der HtmlHelper fehlt, so liegt das meist daran, dass der HtmlHelper in der $helpers Variablen des Controller nicht angegeben ist.