Skip to content

Dépannage & exploitation

Un guide de terrain pour les problèmes que vous rencontrerez vraiment, avec la cause et la solution. Quand quelque chose « n'apparaît pas », la réponse est presque toujours modules / droits / cache.

Activez d'abord les erreurs

Par défaut, Melis est discret sur les erreurs. Activez le mode développement pour les voir :

bash
vendor/bin/laminas-development-mode enable     # status | enable | disable

Cela charge config/development.config.php, désactive les caches de config/modules et fixe error_reporting(E_ALL). Les warnings PHP sont aussi remontés dans l'UI par MelisCorePhpWarningListener. Le reporting/affichage des erreurs peut aussi être piloté par la config Melis sous /meliscore/datas/errors.

Page blanche, HTTP 200, sans erreur ?

Melis utilise l'output buffering ; une erreur fatale au bootstrap/rendu peut produire un 200 vide. Pour voir l'exception avalée, attachez temporairement un listener à MvcEvent::EVENT_DISPATCH_ERROR / EVENT_RENDER_ERROR dans public/index.php (entourez Application::init() d'un try/catch et affichez le param exception), ou activez le mode développement.

Cache

Le cache périmé est la cause n°1 de « j'ai changé la config mais rien ne change ». Les caches vivent sous cache/ :

cache/meliscore_platform_cache-*   # zones backoffice / config plateforme
cache/meliscms_page-*              # pages CMS rendues
cache/config/                      # config Laminas fusionnée (si activée)

Videz-les en supprimant les dossiers concernés, ou via l'API MelisCoreCacheSystemService::deleteCacheByPrefix('*', 'meliscore_platform_cache'). Melis vide aussi les caches automatiquement lors des changements de modules et de droits. Après avoir édité config/melis.module.load.php ou un app.*.php, videz cache/melis* et rechargez.

Pièges courants

Un module n'apparaît pas

CauseSolution
Pas dans la liste de chargementAjoutez-le à config/melis.module.load.php.
Cache périméVidez cache/melis* et rechargez.
Chemin non mappéVérifiez qu'il est dans le config/melis.modules.path.php généré (régénéré par MelisAssetManager).

Un tool existe mais n'est pas visible / « You don't have access to this tool »

CauseSolution
L'utilisateur n'a pas les droitsLe menu gauche est gardé par melis_core_user.usr_rights (liste blanche XML). Accordez le *_toolstree_section du tool via la Gestion des accès, ou une migration (voir flyway/sql/V3__add_melisai_rights.sql).
Droits cachés en sessionLes droits sont chargés à la connexion et rafraîchis périodiquement par MelisCoreCheckUserRightsListenerdéconnectez/reconnectez-vous après les avoir changés.
Utilisateur inactifusr_status doit valoir 1.

Des usr_rights vides = accès total (isAccessible() renvoie true sur du vide) — mais pour un utilisateur normal avec une liste blanche explicite, une section manquante est masquée.

Erreurs de connexion base de données

CauseSolution
Fichier plateforme manquantconfig/autoload/platforms/<MELIS_PLATFORM>.php doit exister et matcher la variable MELIS_PLATFORM.
Mauvais identifiantsVérifiez les variables MYSQL_* consommées par le fichier plateforme.

Assets (CSS/JS) en 404

CauseSolution
Module non mappéVérifiez config/melis.modules.path.php.
Bundles non construitsReconstruisez les assets (build Webpack / vendor/bin/phing).

Les traductions affichent la clé brute tr_…

CauseSolution
Locale non définieLa locale active vient de la session (melis-lang-locale).
Fichier manquantAjoutez language/<locale>.interface.php ; en_EN est le fallback.

Schéma de base (dbdeploy & flyway)

  • dbdeploy (MelisDbDeploy) s'exécute au composer update (hook post-update) pour appliquer les deltas SQL numérotés de chaque module, tracés dans la table changelog.
  • flyway applique les migrations projet dans flyway/sql/ (flyway -configFiles=flyway/conf/flyway.conf migrate).

CLI & outils de build

bash
vendor/bin/laminas-development-mode {status|enable|disable}   # mode dev
flyway -configFiles=flyway/conf/flyway.conf {migrate|info|repair}   # migrations DB
vendor/bin/phing                                             # build assets/bundles

composer update déclenche les hooks Melis (déploiement des modules + dbdeploy) via le post-update-cmd de composer.json.

Où regarder

SujetChemin
Template mode devconfig/development.config.php.dist
API de cachevendor/melisplatform/melis-core/src/Service/MelisCoreCacheSystemService.php
Rafraîchissement des droitsvendor/melisplatform/melis-core/src/Listener/MelisCoreCheckUserRightsListener.php
Warnings PHPvendor/melisplatform/melis-core/src/Listener/MelisCorePhpWarningListener.php
Assemblage des modulesvendor/melisplatform/melis-core/src/MelisModuleManager.php
Config flywayflyway/conf/flyway.conf, migrations dans flyway/sql/