Heim  >  Artikel  >  Backend-Entwicklung  >  Die Verwendung von ob-Klassenfunktionen, wenn PHP Vorlagen einführt

Die Verwendung von ob-Klassenfunktionen, wenn PHP Vorlagen einführt

WBOY
WBOYOriginal
2016-08-18 09:16:351288Durchsuche

Vor kurzem lerne ich einige Prinzipien des PHP-Betriebs kennen. Im Allgemeinen ruft PHP Vorlagendateien über den Controller auf, um die Seite anzuzeigen. Gleichzeitig werden der Vorlage auch die Werte einiger Variablen zugewiesen Dateien. Ich verwende die Datei template.php als Vorlagedatei, sodass Sie die im Controller zugewiesenen Variablen direkt mithilfe der PHP-Syntax in der Vorlagendatei anzeigen können. Indem er sich den Code des CI-Frameworks ansieht, aktiviert er zunächst ob_start, führt dann die Vorlagendatei template.php ein und gibt schließlich ob_get_clean() zurück, wie unten gezeigt

<code>ob_start();
include($_ci_path);
$buffer = ob_get_contents();
@ob_end_clean();
return $buffer;</code>

Gleichzeitig sehe ich, dass die Codeprinzipien des unternehmensinternen Frameworks im Wesentlichen dieselben sind. Jetzt möchte ich wissen, welchen Nutzen die Verwendung einer Reihe von Funktionen wie ob hat können Werte zugewiesen werden.

Antwortinhalt:

Vor kurzem lerne ich einige Prinzipien des PHP-Betriebs kennen. Im Allgemeinen ruft PHP Vorlagendateien über den Controller auf, um die Seite anzuzeigen. Gleichzeitig werden der Vorlage auch die Werte einiger Variablen zugewiesen Dateien. Ich verwende die Datei template.php als Vorlagedatei, sodass Sie die im Controller zugewiesenen Variablen direkt mithilfe der PHP-Syntax in der Vorlagendatei anzeigen können. Indem er sich den Code des CI-Frameworks ansieht, aktiviert er zunächst ob_start, führt dann die Vorlagendatei template.php ein und gibt schließlich ob_get_clean() zurück, wie unten gezeigt

<code>ob_start();
include($_ci_path);
$buffer = ob_get_contents();
@ob_end_clean();
return $buffer;</code>

Gleichzeitig sehe ich, dass die Codeprinzipien des unternehmensinternen Frameworks im Wesentlichen dieselben sind. Jetzt möchte ich wissen, welchen Nutzen die Verwendung einer Reihe von Funktionen wie ob hat können Werte zugewiesen werden.

<code>function render($template, array $var = array()) {
    extract($var);                // 提取数组中的变量(你关注的问题就在这里)
    ob_end_clean();               // 关闭顶层的输出缓冲区内容
    ob_start();                   // 开始一个新的缓冲区
    require "$template";          // 加载视图view
    $view = ob_get_contents();    // 获得缓冲区的内容
    ob_end_clean();               // 关闭缓冲区
    ob_start();                   // 开始新的缓冲区,给后面的程序用
    return $view;                 // 返回文本,此处也可以直接echo输出
}</code>

Funktionen der Ouba-Serie sind immer noch sehr nützlich. Nachdem der Controller render aufgerufen hat, um die Ansicht zu rendern, kann er HTML in statische Dateien schreiben und zwischenspeichern oder einige Dinge im HTML ersetzen und ausgeben . , sehr praktisch.
echo render('index.php', $data);

Der Puffer ist sehr nützlich. Wenn Sie beispielsweise Client-Informationen speichern möchten, hat das Senden von Datei-Header-Informationen keine Auswirkungen auf header oder setcookie usw.

Ich kann nur verstehen, dass Sie nicht verstehen, was include tut

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn