La console de PrestaShop : les commandes bin/console qui vous font gagner des heures
Installer, mettre à jour et réinitialiser des modules, vider le cache ou vérifier les routes sans ouvrir le back-office. Un aide-mémoire de la console de PrestaShop, avec ses pièges.
Depuis PrestaShop 1.7.8, la boutique embarque une console Symfony dans bin/console. Si vous avez un accès SSH au serveur, elle vous permet de faire en quelques secondes ce qui demande plusieurs écrans dans le back-office, et de l'automatiser.
Exécutez-la avec l'utilisateur du serveur web
Si vous lancez la console en tant que root, les fichiers de cache qu'elle génère appartiendront à root et le serveur web ne pourra pas les écraser : le back-office commencera à renvoyer des erreurs 500. Sur un serveur classique :
sudo -u www-data php bin/console cache:clear --env=prod --no-warmup
Modules
php bin/console prestashop:module install mimodulo
php bin/console prestashop:module upgrade mimodulo # ejecuta sus scripts upgrade/
php bin/console prestashop:module enable mimodulo
php bin/console prestashop:module disable mimodulo
php bin/console prestashop:module reset mimodulo # desinstala y reinstala
php bin/console prestashop:module uninstall mimodulo
reset en production, vérifiez ce que fait le uninstall() du module ou sauvegardez ses tables.Cache
php bin/console cache:clear --env=prod --no-warmup
php bin/console cache:clear --env=dev --no-warmup
Le cache de Smarty (templates du front-office) est à part : il se vide depuis Paramètres avancés > Performances ou en supprimant le contenu de var/cache/prod/smarty.
Thèmes et e-mails
php bin/console prestashop:theme:enable mitema
php bin/console prestashop:mail:generate classic es
Dans certaines versions de PrestaShop 9, la commande d'activation du thème échoue depuis la console parce qu'aucune langue n'est définie dans le contexte. Si cela vous arrive, activez-le depuis Apparence > Thème et logo.
Débogage
php bin/console debug:router | grep mimodulo # rutas registradas
php bin/console debug:container mimodulo # servicios del módulo
php bin/console list prestashop # todos los comandos de PrestaShop
Mises à jour du cœur
Le module officiel de mise à jour (Update assistant, anciennement 1-Click Upgrade) embarque sa propre console dans modules/autoupgrade/bin/console, avec des commandes comme update:check-requirements, update:check-modules et update:start. Il permet de mettre à jour à partir d'un paquet local, sans téléchargement, et c'est la façon la plus reproductible de tester une mise à jour sur une copie avant de la faire en production.
Une bonne habitude
Enregistrez dans un script les commandes que vous exécutez à chaque déploiement (envoyer le module, le mettre à jour, vider les caches). Les répéter toujours de la même façon est le meilleur moyen de ne rien oublier.