Heim >Backend-Entwicklung >PHP-Tutorial >Schneller Tipp: Convenience -Hacks zum Übergeben von Daten an Ansichten
Dieser Artikel untersucht effiziente Möglichkeiten, Daten von einem PHP -Controller an eine Zweigvorlage zu übergeben und sich auf Situationen mit zahlreichen Variablen zu konzentrieren. Die Standardmethode zum Übergeben eines großen assoziativen Arrays wird umständlich. In diesem Artikel wird die Funktion compact()
und eine benutzerdefinierte Helferfunktion only_compact()
vorgeschlagen, um diesen Prozess zu rationalisieren.
Das Kernproblem ist die Ausführlichkeit, viele Variablen einzeln an einen Template -Engine wie Zweig zu übergeben. Zum Beispiel:
<code class="language-php">$user = 'user data'; $posts = 'posts'; $comments = 'comments'; // ... many more variables ... $twig->render('author.page', [ 'user' => $user, 'posts' => $posts, 'comments' => $comments, // ... many more entries ... ]);</code>
Dieser Ansatz wird mit einer großen Anzahl von Variablen unüberschaubar. Die compact()
-Funktion bietet eine prägnantere Lösung:
<code class="language-php">$twig->render('author.page', compact('user', 'posts', 'comments')); // ...</code>
erfordert jedoch compact()
explizit auflisten alle gewünschten Variablen. Der Artikel führt einen ausgefeilteren Ansatz mit , get_defined_vars()
und array_diff()
ein, um array_intersect_key()
alle Variablen zu übergeben, außer Eine angegebene Teilmenge. Dies ist in einer wiederverwendbaren Helferfunktion eingekapselt:
<code class="language-php">// Helpers.php function only_compact($values, $keys) { $keys = array_diff(array_keys($values), $keys); return array_intersect_key($values, array_flip($keys)); }</code>Diese
-Funktion nimmt alle definierten Variablen und eine Liste von Variablen aus, um ein Array zurückzugeben, das nur die verbleibenden Variablen enthält. Beispiel Verwendung: only_compact()
<code class="language-php">$twig->render('author.page', only_compact(get_defined_vars(), ['counter', 'twig']));</code>Dies verwaltet eine große Anzahl von Variablen effektiv, indem nur diejenigen angeben, die
ausschließen . Leistungstests mit Blackfire zeigt im Vergleich zur manuellen Methode einen vernachlässigbaren Overhead.
sollte composer.json
unter dem Abschnitt "helpers.php"
der Konfiguration "files"
enthalten, um die Helferfunktion verfügbar zu machen. "autoload"
Das obige ist der detaillierte Inhalt vonSchneller Tipp: Convenience -Hacks zum Übergeben von Daten an Ansichten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!