Les moteurs de règles sont des outils fascinants, souvent complexes mais conçus pour remplacer la logique conditionnelle plus simple. Leur vrai pouvoir réside dans l'échelle de manipulation.
Dans les grandes applications, la gestion de la logique d'affichage ou l'activation des fonctionnalités entre de vastes bases de code avec des instructions conditionnelles simples conduit à des bogues, des cas de bord et une couverture incomplète. C'est là qu'un moteur de règle robuste excelle.
illustrons avec un exemple (code disponible sur https://www.php.cn/link/050b8cbe360fb66fe566aae25cd800df ):
Avantages clés de la diriger:
Le défi: listes de lecture intelligentes
De nombreux joueurs de musique, comme iTunes, proposent des "listes de lecture intelligentes". Celles-ci mettent automatiquement à jour en fonction des règles définies. Par exemple: "Show All Tracks by The Glitch Mob, produit avant 2014, a joué moins de 20 fois." Comment cela marche-t-il? L'implémentation de cela avec de nombreuses déclarations conditionnelles dans PHP serait lourde et sujette aux erreurs.
Présentation de la règle
règnez est un moteur de règle implémentant le modèle de spécification (similaire à ceux des orms éloquents et doctrine). Il fonctionne sur une liste (utilisateurs, dépenses, etc.), le filtrant en fonction de la logique chaînée:
$list ->whereArtist("The Glitch Mob") ->whereYearLessThan(2015) ->wherePlayCountLessThan(20) ->all();
Orms traduisent souvent cela en SQL, mais le concept de base demeure: l'application de la logique booléenne efficacement. Cela évite les complexités des conditions de PHP étendues.
Utilisation de dirigerz
use RulerZ\Compiler; use RulerZ\Parser; use RulerZ\RulerZ; // ... (Compiler and RulerZ setup as in original example) ... $tracks = [ // ... (Track data as in original example) ... ]; $filtered = $rulerz->filter( $tracks, "artist = :artist and year < :year and plays < :plays", [ "artist" => "The Glitch Mob", "year" => 2015, "plays" => 20 ] );
Cela filtre une liste de pistes basée sur une chaîne de règles et des paramètres, reflétant les fonctionnalités de SQL mais au sein de PHP, fonctionnant sur des données en mémoire.
Création d'une application de playlist intelligente
L'article détaille ensuite la création d'une application Web pour créer des listes de lecture intelligentes:
library.xml
). tracks.json
) en utilisant le code PHP fourni. Cela simplifie la gestion des données. tracks.json
.
Conclusion
Ce projet démontre les capacités de Rulerz dans la création d'une application pratique et évolutive. Le moteur de règle simplifie la logique de filtrage complexe, ce qui en fait un outil précieux pour gérer de grands ensembles de données et des besoins de filtrage dynamique. L'article se termine par une section FAQ couvrant divers aspects de l'utilisation du moteur Rulez Rule.
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!