<label id="sma6z"></label>
  • <thead id="sma6z"></thead>

    <label id="sma6z"></label>
    <rt id="sma6z"><noframes id="sma6z">
    \n
    {% block content %}{% endblock %}<\/div>\n
    {% block footer %}? 2013 example.com{% endblock %}<\/div>\n<\/body>\n<\/html><\/pre>\n

    Les modèles d'enfants étendent ce parent, remplacement de blocs spécifiques: <\/p>\n

    {% extends \"parent.html\" %}\n{% block head %}\n  {{ parent() }}\n  \n{% endblock %}\n{% block content %}\n  

    My Page<\/h1>\n{% endblock %}<\/pre>\n

    La fonction parent()<\/code> conserve le contenu du bloc du parent, permettant des modifications additives. <\/p>\n

    Filtres de brindilles: transformation des données <\/strong> <\/p>\n

    Les filtres transforment les variables. Un exemple intégré est trim()<\/code> pour éliminer les espaces blancs: <\/p>\n

    {{ \"  Variable Content  \" | trim }}<\/pre>\n

    Les filtres personnalisés étendent cette fonctionnalité. Par exemple, un filtre à styler les catégories dans une grille de produit: <\/p>\n

    $filter = new \\Twig\\TwigFilter('highlight', function ($key) {\n    switch (trim($key)) {\n        case 'book_category': return 'Book<\/span>';\n        case 'cd_category': return 'CD<\/span>';\n        \/\/ ... more cases\n        default: return $key;\n    }\n});\n$twig->addFilter($filter);<\/pre>\n

    utilisé dans le modèle: <\/p>\n

    {% for product in products %}\n  
    \n {{ product.category | highlight }}: {{ product.product }}\n <\/div>\n{% endfor %}<\/pre>\n

    Fonctions de brindilles: génération de contenu dynamique <\/strong> <\/p>\n

    Les fonctions ajoutent du contenu dynamique. Semblable aux filtres, les fonctions personnalisées améliorent la flexibilité du modèle. Considérez une fonction pour générer des champs de formulaire: <\/p>\n

    $function = new \\Twig\\TwigFunction('form_text', function ($name, $id, $value = \"\", $class = \"form_text\") {\n    return '';\n});\n$twig->addFunction($function);<\/pre>\n

    Utilisation du modèle: <\/p>\n

    {{ form_text('fname', 'fname', '', 'chosen') }}<\/pre>\n

    Conclusion: <\/strong> <\/p>L'héritage, les filtres et les fonctions de

    Twig fournissent un mécanisme puissant pour créer des modèles extensibles et maintenables. Cette approche favorise la réutilisation du code, réduit les erreurs et améliore l'efficacité globale de développement. La combinaison de ces fonctionnalités fait de la brindille un choix supérieur pour les modèles PHP. <\/p>\n

    Questions fréquemment posées (FAQ): <\/strong> <\/p>\n

    La section FAQ fournie dans l'entrée d'origine est déjà complète et bien structurée. Aucun changement n'est nécessaire. <\/p>"}

    国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

    Maison développement back-end tutoriel php PHP Master | Extension des modèles de brindilles: héritage, filtres, fonctions

    PHP Master | Extension des modèles de brindilles: héritage, filtres, fonctions

    Feb 24, 2025 am 09:36 AM

    PHP Master | Extending Twig Templates: Inheritance, Filters, Functions

    Tirer parti de l'extensibilité de la Twig pour des modèles PHP améliorés

    Dans les architectures MVC, les moteurs de modèle rationalisent la population de contenu dynamique dans les vues. Twig excelle parmi les moteurs de modèle PHP en raison de ses caractéristiques d'extensibilité robustes, en particulier l'héritage des modèles, les filtres et les fonctions. Cet article explore ces extensions pour un code plus propre et plus maintenable.

    Avantages clés de l'extensibilité de Twig:

    • Héritage du modèle: Crée des modèles parents réutilisables avec des blocs définis, étendus et personnalisés dans des modèles enfants. Cela centralise les références, l'amélioration de la cohérence.
    • Filtres: Modifier les variables dans les modèles. Utilisez des filtres intégrés ou personnalisés pour des taches comme le style conditionnel (par exemple, mettant en évidence les catégories dans une grille de données).
    • Fonctions: Injecter le contenu dynamique. Semblable aux filtres, les fonctions personnalisées gèrent les besoins spécifiques, tels que la génération de champs de formulaire avec les attributs requis, garantissant la précision et la réduction des erreurs.

    Adjudant les limites des bibliothèques de modèles traditionnelles:

    De nombreuses bibliothèques de modèles manquent d'extensibilité, conduisant à la duplication de code. Par exemple, la gestion des inclusions CSS et JavaScript implique souvent des modèles d'en-tête et de pied de page séparés, ou intégrer des références de script directement dans des modèles de page individuels. Cette approche devient lourde et sujette aux erreurs à mesure que la complexité augmente. Considérez un scénario nécessitant l'initialisation de Google Maps sur une seule page; y compris le script de carte dans l'en-tête de chaque page est inefficace.

    Solution de Twig: Héritage du modèle

    L'héritage de Twig résout élégamment cela. Un modèle parent définit les blocs:

    <!DOCTYPE html>
    <html>
    <head>
      {% block head %}
        <link rel="stylesheet" href="style.css">
        <??>
      {% endblock %}
    </head>
    <body>
      <div id="grid">{% block content %}{% endblock %}</div>
      <div id="footer">{% block footer %}? 2013 example.com{% endblock %}</div>
    </body>
    </html>

    Les modèles d'enfants étendent ce parent, remplacement de blocs spécifiques:

    {% extends "parent.html" %}
    {% block head %}
      {{ parent() }}
      <??>
    {% endblock %}
    {% block content %}
      <h1>My Page</h1>
    {% endblock %}

    La fonction parent() conserve le contenu du bloc du parent, permettant des modifications additives.

    Filtres de brindilles: transformation des données

    Les filtres transforment les variables. Un exemple intégré est trim() pour éliminer les espaces blancs:

    {{ "  Variable Content  " | trim }}

    Les filtres personnalisés étendent cette fonctionnalité. Par exemple, un filtre à styler les catégories dans une grille de produit:

    $filter = new \Twig\TwigFilter('highlight', function ($key) {
        switch (trim($key)) {
            case 'book_category': return '<span class="book">Book</span>';
            case 'cd_category': return '<span class="cd">CD</span>';
            // ... more cases
            default: return $key;
        }
    });
    $twig->addFilter($filter);

    utilisé dans le modèle:

    {% for product in products %}
      <div>
        {{ product.category | highlight }}: {{ product.product }}
      </div>
    {% endfor %}

    Fonctions de brindilles: génération de contenu dynamique

    Les fonctions ajoutent du contenu dynamique. Semblable aux filtres, les fonctions personnalisées améliorent la flexibilité du modèle. Considérez une fonction pour générer des champs de formulaire:

    $function = new \Twig\TwigFunction('form_text', function ($name, $id, $value = "", $class = "form_text") {
        return '<input type="text" name="' . $name . '" id="' . $id . '" value="' . $value . '" class="' . $class . '">';
    });
    $twig->addFunction($function);

    Utilisation du modèle:

    {{ form_text('fname', 'fname', '', 'chosen') }}

    Conclusion:

    L'héritage, les filtres et les fonctions de

    Twig fournissent un mécanisme puissant pour créer des modèles extensibles et maintenables. Cette approche favorise la réutilisation du code, réduit les erreurs et améliore l'efficacité globale de développement. La combinaison de ces fonctionnalités fait de la brindille un choix supérieur pour les modèles PHP.

    Questions fréquemment posées (FAQ):

    La section FAQ fournie dans l'entrée d'origine est déjà complète et bien structurée. Aucun changement n'est nécessaire.

    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

    Outils d'IA chauds

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Quelles sont les meilleures pratiques pour verser une API basée sur PHP? Quelles sont les meilleures pratiques pour verser une API basée sur PHP? Jun 14, 2025 am 12:27 AM

    Toversionaphp basé sur la performance, utilisation de la Version basée sur la croissance et la SEAFROURSE, Séparable CodééToAvoid Conclict, dépréciant les versions avec la Communication et la vision de la ConsiderCustomEnlywhencesseary.

    Comment mettre en ?uvre l'authentification et l'autorisation dans PHP? Comment mettre en ?uvre l'authentification et l'autorisation dans PHP? Jun 20, 2025 am 01:03 AM

    ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

    Quelles sont les différences entre les paradigmes de programmation procéduraux et orientés objet en PHP? Quelles sont les différences entre les paradigmes de programmation procéduraux et orientés objet en PHP? Jun 14, 2025 am 12:25 AM

    ProcéduralandObject-OriendEdProgramming (OOP) inphpdiffersignifiancely instructure, réutilisabilité et datahandling.1.ProceduralProgrammingususFonctionnets organisé sécrégence, approprié modéliste.2.

    Quelles sont les références faibles (faiblemap) en PHP, et quand pourraient-ils être utiles? Quelles sont les références faibles (faiblemap) en PHP, et quand pourraient-ils être utiles? Jun 14, 2025 am 12:25 AM

    PhpDoOesNothAveAbilt-InweakMapButoffersWeakreferenceForsiMarFonctionality.1.WeakReferenceallowsholdingreferences withoutpreventinggarbageCollection.2.itisationfulforcaching, les événements, et lametadatawithoutaffectingobjectlifecycles.3.

    Comment pouvez-vous gérer les téléchargements de fichiers en toute sécurité dans PHP? Comment pouvez-vous gérer les téléchargements de fichiers en toute sécurité dans PHP? Jun 19, 2025 am 01:05 AM

    Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

    Comment pouvez-vous interagir avec les bases de données NoSQL (par exemple, MongoDB, redis) de PHP? Comment pouvez-vous interagir avec les bases de données NoSQL (par exemple, MongoDB, redis) de PHP? Jun 19, 2025 am 01:07 AM

    Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

    Quelles sont les différences entre == (comparaison lache) et === (comparaison stricte) en PHP? Quelles sont les différences entre == (comparaison lache) et === (comparaison stricte) en PHP? Jun 19, 2025 am 01:07 AM

    En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

    Comment effectuer des opérations arithmétiques en php (, -, *, /,%)? Comment effectuer des opérations arithmétiques en php (, -, *, /,%)? Jun 19, 2025 pm 05:13 PM

    Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.

    See all articles