Maison > développement back-end > tutoriel php > Construire un filtre à brindilles personnalisés la voie TDD

Construire un filtre à brindilles personnalisés la voie TDD

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-02-17 12:44:11
original
1019 Les gens l'ont consulté

Filtres Twig: Amélioration des modèles Symfony avec conversions personnalisées

Cet article explore les filtres à brindilles, des outils puissants pour la transformation des données dans les modèles Symfony. Nous couvrirons la création de filtres personnalisés en utilisant le développement axé sur le test (TDD) avec PHPUnit, les intégrant dans votre application Symfony et aborder des questions courantes.

Avantages clés des filtres à brindilles:

  • Code propre: Les filtres maintiennent une séparation claire des préoccupations dans votre architecture MVC, en gardant la manipulation des données dans la couche de vue et les contrôleurs axés sur la logique.
  • Réutilisabilité: Un seul filtre peut être utilisé sur plusieurs modèles et sources de données, favorisant l'efficacité du code.
  • lisibilité: Les filtres rendent les modèles plus concis et plus faciles à comprendre, améliorant la maintenabilité.

Construire un filtre personnalisé avec TDD:

Créons un filtre pour formater les dates de publication / fois plus lisiblement (par exemple, "juste maintenant" "il y a quelques heures"). Nous suivrons une approche TDD:

  1. Définir les attentes (tests): Définir les cas de test en utilisant le phpunit, décrivant les sorties attendues pour diverses différences de temps. Cet exemple timeUtilTest.php illustre ceci:
<?php
namespace AppBundle\Tests\Twig;
use AppBundle\Twig\AppExtension;

class timeUtilTest extends \PHPUnit_Framework_TestCase {
    // ... (test methods and data provider as shown in the original input) ...
}
Copier après la connexion
  1. Implémentez le filtre: Créez le fichier AppExtension.php, contenant la fonction tssFilter pour répondre aux attentes du test:
<?php
namespace AppBundle\Twig;

class AppExtension extends \Twig_Extension {
    // ... (getFilters and getName methods as shown in the original input) ...

    public function tssFilter(\DateTime $timestamp) {
        // ... (tssFilter implementation as shown in the original input) ...
    }
}
Copier après la connexion
  1. Exécuter des tests: exécuter phpunit (phpunit -c app/) pour vérifier la fonctionnalité du filtre. Tous les tests doivent passer après la mise en œuvre tssFilter.

  2. Intégration Symfony: Enregistrez le filtre en tant que service dans votre services.yml:

services:
    app.twig_extension:
        class: AppBundle\Twig\AppExtension
        tags:
            - { name: twig.extension }
Copier après la connexion
  1. Utilisation du modèle: Maintenant, vous pouvez utiliser le filtre dans vos modèles de brindilles:
{{ post.author|capitalize }} posted "{{ post.title|capitalize }}" (posted {{ post.creation|tss }})
Copier après la connexion

Image:

Building a Custom Twig Filter the TDD Way

Questions fréquemment posées:

La section FAQ de l'entrée d'origine fournit des réponses complètes sur divers aspects des filtres à brindilles personnalisées, y compris leur importance dans Symfony, le processus de création, les méthodologies de test, les techniques de débogage et l'optimisation des performances. Ces points sont bien couverts et ne nécessitent pas d'élaboration supplémentaire ici.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal