Melis EngineFondation · données & cache

La salle des machines de chaque site Melis

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.

Démo en direct
engine — services de page
// 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
Source unique de véritéPages, sites, SEO
En cachePages rapides

Paquet

melis-engine

Rôle

Fondation

Interface

Aucune — headless

Tables propres

Oui

Cache

laminas-cache

Licence

OSL-3.0

Vue d'ensemble

La fondation de données

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

Tout ce qui fait tourner la plateforme

Le modèle de données, les services, le cache et la base des plugins — la mécanique sur laquelle repose chaque autre module.

Porte le modèle de données du CMS

Pages (publiées & enregistrées), l'arbre des pages, sites, domaines, templates, styles, SEO et langues.

Passerelles & services

Chaque module lit et écrit le modèle via des services mis en cache — jamais de SQL brut.

Brouillon vs publié

Garde séparées la version en ligne et la version de travail pour que les éditeurs n'affectent jamais les visiteurs par accident.

Multilingue & multi-site

Modélise les pages par langue et par site : une seule installation peut faire tourner de nombreux sites dans de nombreuses langues.

Cache des pages

Des pages pré-rendues tenues prêtes ; la publication vide le cache concerné pour que les modifications passent en ligne.

Classe de base des plugins

Définit MelisTemplatingPlugin — la base qu'étend chaque bloc de contenu (News, Slider, Catégories…).

Voir en action

Une seule API pour tout le modèle de page

Les mêmes données que le back-office édite et que le front rend — lues via des services d'engine mis en cache.

engine — arbre & services
// 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);
En cacheCohérent partout
Services

Une seule API pour tout le modèle de page

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.

  • getDatasPage — publiée ou enregistrée
  • Services d'arbre, de liens & de fil d'Ariane
  • Tout en cache, tout cohérent

Pour les développeurs

Comment c'est câblé

Source unique de vérité

Ni Melis CMS ni Melis Front ne possède de tables — Engine fait autorité pour le modèle de pages & de sites.

Tout en cache

laminas-cache (système de fichiers + mémoire) ; une publication invalide le cache de la page.

Le framework de plugins

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

Explorez le reste de la plateforme

Melis Engine est la fondation — voici les modules construits par-dessus.

Le moteur derrière chaque page

Découvrez comment la fondation de données de la plateforme s'assemble.