Bonjour @florian_bordeaux et @sandrine_shop93,
@sandrine_shop93 a tout à fait raison. Forcer la définition de _PS_CACHING_SYSTEM_ dans defines.inc.php est une mauvaise pratique pour la production. PrestaShop 9 est plus strict sur ces points et s'attend à ce que l'extension ext-redis soit présente et fonctionnelle avant de pouvoir utiliser Redis comme backend de cache.
La meilleure approche est de vous assurer que l'extension PHP ext-redis est correctement installée et configurée sur votre serveur (vérifiez avec php -m | grep redis ou phpinfo()). Ensuite, configurez Redis via le Back Office dans Paramètres Avancés > Performances. C'est là que PrestaShop effectue les vérifications nécessaires.
Si vous tenez absolument à avoir une logique dans defines.inc.php (ce que je déconseille fortement, préférez le BO), voici comment vous pourriez le faire de manière sécurisée en vérifiant la présence de l'extension :
// Fichier : config/defines.inc.php
if (!defined('_PS_CACHING_SYSTEM_')) {
if (extension_loaded('redis')) {
define('_PS_CACHING_SYSTEM_', 'Redis');
define('_PS_CACHE_REDIS_SERVER_', '127.0.0.1');
define('_PS_CACHE_REDIS_PORT_', '6379'); // Port Redis par défaut
} else {
define('_PS_CACHING_SYSTEM_', 'File'); // Retour au cache fichier si Redis non dispo
}
}
Concernant les problèmes de CCC avec le JavaScript, c'est un classique. La concaténation et la minification peuvent effectivement casser des scripts qui ont des dépendances d'ordre strict, qui utilisent des variables globales de manière non sécurisée, ou qui ont des syntaxes exotiques que le minifier n'aime pas. Pour résoudre cela :
- Désactiver CCC JavaScript : Allez dans
Paramètres Avancés > Performances, et sous la section "CCC (Combiner, Compresser et Mettre en Cache)", désactivez uniquement l'option "Fichiers JavaScript". Laissez les CSS activés si vous le souhaitez.
- Vérifier la console : Ouvrez la console de votre navigateur (F12) et regardez les erreurs JavaScript spécifiques après l'activation de CCC. Cela peut vous donner des indices sur le script exact qui pose problème.
- Ordre des scripts : Si possible, assurez-vous que vos scripts sont chargés de manière
defer ou async si leur exécution n'est pas critique pour le rendu initial, cela peut aider à éviter les conflits d'ordre. Sinon, il faudra les exclure manuellement du processus CCC si vous utilisez un module tiers pour gérer les actifs.