Notes de chantier.
Retours d'expérience, tutoriels techniques, snippets et décortications de bugs. Le tout sans bullshit.
Mettre en cage une attaque massive sur le FacetedSearch PrestaShop
MariaDB à 100 % de CPU, des bots qui crawlent des dizaines de milliers d'URLs de filtres : comment on a identifié, jailé via fail2ban et borné une attaque sur la navigation à facettes PrestaShop.
Brancher une app Symfony sur une base PrestaShop, sans tout casser
Une app Symfony à côté de la boutique : la bonne façon de lire les données PrestaShop sans dupliquer la logique ni corrompre la base. Connexion DBAL en lecture seule, requêtes paramétrées, et les pièges à éviter.
PrestaShop 9 : faut-il migrer maintenant ou attendre ?
Symfony 6, refonte du back-office, breaking changes API : qu'est-ce qui change vraiment, qu'est-ce qui peut casser, et comment on conseille nos clients fin 2026.
Comment on a divisé par 3 le TTFB d'une boutique PrestaShop 8
Diagnostic, profilage Xdebug, ajustements MariaDB, OPcache, LSCache, Redis pour les sessions : retour pas-à-pas sur une optimisation perf qui a fait passer le TTFB de 1100ms à 380ms.
Migrer PrestaShop 1.7 vers 8 : ce qu'on apprend après 30 migrations
PHP 8.1, structure des modules, controllers, dépendances Composer : un retour terrain honnête sur les pièges classiques d'une migration PrestaShop 1.7 → 8.
Sauvegardes PrestaShop : ce que la plupart des hébergeurs oublient
Sauvegarde nocturne, c'est bien. Restauration testée, c'est mieux. Backup hors-site chiffré, là on commence à parler. Les pratiques qu'on applique en infogérance.
Importer 10 000 produits via CLI sans tomber en timeout
L'import standard PrestaShop est OK pour 500 lignes mais devient catastrophique au-delà. Un script CLI léger qui contourne timeout, mémoire, et locks DB.
Override propre d'un controller PrestaShop sans casser les mises à jour
Modifier le comportement d'un FrontController sans toucher au cœur ni au dossier /override : la méthode du module qui survit aux upgrades PS.
Purger le cache LiteSpeed depuis un hook PrestaShop
Quand on développe un module qui modifie un produit hors du flux standard, il faut prévenir LSCache de purger les pages concernées. Snippet à intégrer dans n'importe quel module.
Compter les commandes par statut sans charger toutes les Order
Le piège classique : `Order::getOrders()` puis `count()`. Sur 100k commandes, c'est plusieurs secondes. Faites-le en SQL.