Skip to content

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 unaccent via 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).