Skip to content

MelisAssetManager ​

Sert les assets publics (CSS, JS, images) de chaque module via des URLs propres et les regroupe pour la production ; fournit également la source canonique de découverte des modules actifs. Paquet melisplatform/melis-asset-manager.

Présentation ​

MelisAssetManager intercepte les requêtes vers /<NomDuModule>/{css,js,images}/… au chargement et diffuse le fichier correspondant depuis le dossier public/ de ce module, sans logique de contrôleur dans le chemin critique. Au premier démarrage, il écrit une carte module-vers-chemin dans config/melis.modules.path.php (le dossier config/ doit être accessible en écriture). Il fournit également les services à l'échelle de la plateforme pour interroger les modules installés ou actifs, et pour compiler le CSS/JS de tous les modules en bundles de production via webpack.

Il fait partie des fondations de la plateforme MelisCore et est requis par pratiquement tous les autres modules.

Activation ​

Ajouter dans config/melis.module.load.php :

php
return [
    'MelisAssetManager',
];

Dépendance : melisplatform/melis-core (^5.2). Le dossier config/ doit être accessible en écriture pour que le module puisse persister melis.modules.path.php au démarrage.

Services principaux ​

Enregistrés dans config/module.config.php sous service_manager.

Alias de serviceRôle
ModulesServiceDécouvrir et interroger les modules installés/actifs (MelisModulesService).
MelisWebPackServiceConstruire les bundles webpack et résoudre les listes d'assets des modules.
MelisConfigFusionner et lire l'arbre de config applicative de la plateforme (MelisConfigService).

MelisModulesService ​

Le service canonique « quels modules existent / sont actifs ». Utilisé par l'outil Modules, la marketplace, le chargement des modules de site et l'installateur.

php
$modules = $sm->get('ModulesService'); // MelisAssetManager\Service\MelisModulesService

$active   = $modules->getMelisActiveModules();        // modules actuellement activés
$all      = $modules->getAllModules();                // tous les modules découvrables
$vendor   = $modules->getVendorModules();             // modules sous vendor/
$versions = $modules->getModulesAndVersions();        // module => version
$deps     = $modules->getChildDependencies($moduleName);
$sites    = $modules->getSitesModules();              // modules de template/site

Liste complète des méthodes : getMelisActiveModules, getModulesAndVersions, getComposer/setComposer, getUserModules, getSitesModules, getMelisModules, getAllModules, getVendorModules, getChildDependencies.

MelisWebPackService ​

php
$webpack = $sm->get('MelisWebPackService');

$assets  = $webpack->getAssets($moduleName);           // assets déclarés d'un module
$merged  = $webpack->getMergedAssets();                // ensemble fusionné à l'échelle de la plateforme
$webpack->buildWebPack();                               // compiler les bundles
$file    = $webpack->getWebPackMixStaticFile($asset);  // résoudre un asset haché/mixé

Liste complète des méthodes : getAssets, getWebPackMixStaticFile, getMergedAssets, buildWebPack, setCachedFile, getCachedFiles.

La clé de config ressources.build par module (dans le app.interface.php d'un module) déclare le bundle.css / bundle.js que ce service produit et sert.

MelisConfigService ​

Un helper de fusion de config et de traduction pour les besoins propres d'asset-manager. Méthodes principales : getItem, getMelisKeys, getFormMergedAndOrdered, translateAppConfig.

URLs des assets ​

Les assets de n'importe quel module sont accessibles à :

/<NomDuModule>/css/<fichier>.css
/<NomDuModule>/js/<fichier>.js
/<NomDuModule>/images/<fichier>.jpg

Ces URLs correspondent au dossier public/ de chaque module. Le repli est le public/ principal du projet.

Tables de base de données ​

Aucune. Le module est sans état — son seul état persisté est le fichier généré config/melis.modules.path.php.

Fichiers clés ​

ÉlémentChemin
Aliases de services et câblage de la livraison des assetsvendor/melisplatform/melis-asset-manager/config/module.config.php
Service de découverte des modulesvendor/melisplatform/melis-asset-manager/src/Service/MelisModulesService.php
Service webpack/bundlevendor/melisplatform/melis-asset-manager/src/Service/MelisWebPackService.php
Lecteur de config applicativevendor/melisplatform/melis-asset-manager/src/Service/MelisConfigService.php
Contrôleurs assets/webpackvendor/melisplatform/melis-asset-manager/src/Controller/
Carte des chemins de modules (générée)config/melis.modules.path.php

Voir aussi : MelisCore · MelisDbDeploy · MelisComposerDeploy · MelisInstaller · Référence des modules