Devlog #5 : Filtrage avancé
Focus : Expérience utilisateur (UX) via la recherche robuste et architecture flexible pour la logistique.
🔍 Le défi de la recherche : Accents et Normalisation
Lors de l'implémentation du filtrage des commandes, j'ai été confronté à l'inconsistance des saisies (ex: "Boîte" vs "Boite"). Pour garantir une recherche fiable, j'ai mis en place une solution à deux niveaux :
1. Niveau Base de données (PostgreSQL + DQL)
Pour que la base de données ignore les accents lors du LIKE, j'ai :
- Activé l'extension
unaccentvia une migration PostgreSQL. - Déclaré une Custom DQL Function pour rendre
unaccent()utilisable directement dans mes QueryBuilders Doctrine.
2. Niveau Application (PHP)
Mon Manager effectue un second filtrage pour nettoyer la collection d'items retournée. PHP étant sensible aux accents par défaut, j'ai utilisé transliterator_transliterate avec la règle Any-Latin; Latin-ASCII; Lower().
Résultat : Une recherche totalement agnostique de la casse et des accents, tant en SQL qu'en mémoire.
🤖 Pilotage de l'IA pour le Frontend
Bien que mon cœur de métier soit le Backend Symfony, j'utilise l'IA pour générer les interfaces statiques en Vue.js.
Ma méthodologie de "Prompt Engineering" : Je ne demande pas "une page de recherche", mais je fournis un contrat strict :
- Définition des composants réutilisables.
- Liste exhaustive des propriétés des objets (Product cards).
- Définition précise des modules de filtres attendus.
Observation : L'IA est un excellent exécutant pour le boilerplate CSS/HTML, mais nécessite une revue humaine stricte sur les "libertés" qu'elle prend (propriétés fantômes, logique de state inutile).