Maison > développement back-end > tutoriel php > Conseil rapide: hacks de commodité pour passer des données aux vues

Conseil rapide: hacks de commodité pour passer des données aux vues

Lisa Kudrow
Libérer: 2025-02-14 08:35:12
original
799 Les gens l'ont consulté

Cet article explore des moyens efficaces de passer les données d'un contrôleur PHP à un modèle de brindille, en se concentrant sur les situations avec de nombreuses variables. La méthode standard de passage d'un grand réseau associatif devient lourd. Cet article propose d'utiliser la fonction PHP compact() et une fonction d'assistance personnalisée only_compact() pour rationaliser ce processus.

Quick Tip: Convenience Hacks for Passing Data to Views

Le problème de base est la verbosité de passer individuellement de nombreuses variables à un moteur de modèle comme la brindille. Par exemple:

$user = 'user data';
$posts = 'posts';
$comments = 'comments';
// ... many more variables ...

$twig->render('author.page', [
    'user' => $user,
    'posts' => $posts,
    'comments' => $comments,
    // ... many more entries ...
]);
Copier après la connexion

Cette approche devient ingérable avec un grand nombre de variables. La fonction compact() offre une solution plus concise:

$twig->render('author.page', compact('user', 'posts', 'comments')); // ...
Copier après la connexion

Cependant, compact() nécessite une liste explicite toutes les variables souhaitées . L'article présente une approche plus sophistiquée utilisant get_defined_vars(), array_diff() et array_intersect_key() pour passer toutes les variables sauf un sous-ensemble spécifié. Ceci est encapsulé dans une fonction d'assistance réutilisable:

// Helpers.php
function only_compact($values, $keys) {
    $keys = array_diff(array_keys($values), $keys);
    return array_intersect_key($values, array_flip($keys));
}
Copier après la connexion

Cette fonction only_compact() prend toutes les variables définies et une liste de variables à exclure, renvoyant un tableau contenant uniquement les variables restantes. Exemple d'utilisation:

$twig->render('author.page', only_compact(get_defined_vars(), ['counter', 'twig']));
Copier après la connexion

Cela gère efficacement un grand nombre de variables en spécifiant uniquement celles à exclure . Les tests de performances avec un feu noir montre des frais généraux négligeables par rapport à la méthode manuelle.

Quick Tip: Convenience Hacks for Passing Data to Views Quick Tip: Convenience Hacks for Passing Data to Views

L'article conclut en résumant les meilleures pratiques et les questions fréquemment posées concernant le passage des données aux vues, couvrant des sujets tels que des tableaux associatifs, des objets, des boucles et des fonctions de brindilles communes. Le composer.json doit inclure "helpers.php" sous la section "files" de la configuration "autoload" pour rendre la fonction d'assistance disponible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal