Invisible pour les internautes, Melis Engine porte toutes les données du site — pages, sites, templates, langues, SEO — ainsi que les services, le cache et le framework de plugins sur lesquels repose toute la plateforme.
// Lire une page via l'engine — jamais les tables directement : $page = $sm->get('MelisEnginePage'); $published = $page->getDatasPage($idPage); // live $draft = $page->getDatasPage($idPage, 'saved'); // brouillon de travail // L'arbre : enfants, fil d'Ariane, liens canoniques — tout en cache : $tree = $sm->get('MelisEngineTree'); $url = $tree->getPageLink($idPage, true); // URL absolue
Paquet
Rôle
Interface
Tables propres
Cache
Licence
Vue d'ensemble
Imaginez un site Melis comme trois couches : Melis CMS est le volant (le back-office), Melis Front est la carrosserie et les roues (ce que voient les visiteurs), et Melis Engine est le moteur et le réservoir — il détient toutes les données et la mécanique dont les deux dépendent. Vous ne cliquez jamais sur « Engine », mais il travaille sous chaque page.
Il garde séparées les versions publiée et enregistrée (brouillon) de chaque page, modélise les pages par langue et par site, et met en cache les pages rendues pour qu'elles se chargent vite — la publication vide le cache concerné pour que les modifications passent en ligne.
Fonctionnalités clés
Le modèle de données, les services, le cache et la base des plugins — la mécanique sur laquelle repose chaque autre module.
Pages (publiées & enregistrées), l'arbre des pages, sites, domaines, templates, styles, SEO et langues.
Chaque module lit et écrit le modèle via des services mis en cache — jamais de SQL brut.
Garde séparées la version en ligne et la version de travail pour que les éditeurs n'affectent jamais les visiteurs par accident.
Modélise les pages par langue et par site : une seule installation peut faire tourner de nombreux sites dans de nombreuses langues.
Des pages pré-rendues tenues prêtes ; la publication vide le cache concerné pour que les modifications passent en ligne.
Définit MelisTemplatingPlugin — la base qu'étend chaque bloc de contenu (News, Slider, Catégories…).
Voir en action
Les mêmes données que le back-office édite et que le front rend — lues via des services d'engine mis en cache.
// Une seule API pour tout le modèle de page — utilisée par le BO et le front : $tree = $sm->get('MelisEngineTree'); $kids = $tree->getPageChildren($idPage, 1); // 1 = publiées uniquement $crumb = $tree->getPageBreadcrumb($idPage); // Services Template / site / SEO, tous en cache : $tpl = $sm->get('MelisEngineTemplateService')->getTemplate($tplId); $site = $sm->get('MelisEngineSiteService')->getSiteById($siteId);
Lisez les pages, l'arbre, les liens et les fils d'Ariane via des services d'engine mis en cache — les mêmes données que le back-office édite et que le front rend.
Pour les développeurs
Ni Melis CMS ni Melis Front ne possède de tables — Engine fait autorité pour le modèle de pages & de sites.
laminas-cache (système de fichiers + mémoire) ; une publication invalide le cache de la page.
MelisTemplatingPlugin : front() effectue le rendu sur le site live, back() rend le conteneur d'édition du back-office.
// Chaque bloc de contenu étend le plugin de base de l'engine : class MyBlockPlugin extends MelisTemplatingPlugin { public function front() { /* rendu sur le site live */ } public function back() { /* rendu du conteneur d'édition du BO */ } }
Élément de Melis Platform
Melis Engine est la fondation — voici les modules construits par-dessus.
Découvrez comment la fondation de données de la plateforme s'assemble.