spip/framework | 12 commits
Par marcimat, le 25 juin 2026 à 22h03min :
Merge branch ‹ 6090-spip-5-amelioration-du-conteneur-compile › into ‹ 5.x ›
feat: Générer le cache des plugins (options, chemins, …) à partir d’un fichier /var/state/plugins.php (sans SQL)
See merge request spip/framework!7
Ajouté
src/Boot/BootArtifactCompiler.php
src/Boot/BootOrchestrator.php
src/Pipeline/DynamicPipelineDeclarationDetector.php
src/Pipeline/LegacyHeadAssetsListenerRegistrar.php
src/Pipeline/LegacyPipelineListenerRegistrar.php
src/Plugin/Boot/DistPluginProvider.php
src/Plugin/Boot/PluginBootArtifactBuilder.php
src/Plugin/Boot/PluginBootCache.php
src/Plugin/Boot/PluginManifest.php
src/Plugin/Boot/PluginManifestListProvider.php
src/Plugin/Boot/PluginManifestSqlMigrator.php
src/Plugin/Boot/PluginManifestStore.php
src/Plugin/Boot/PluginManifestStructuresBuilder.php
src/Plugin/Boot/PluginMenuCollector.php
src/Plugin/Config/DeclarativeContainerCompiler.php
src/Plugin/Discovery/PluginOrderResolver.php
src/Plugin/Discovery/PluginScanner.php
src/Plugin/Paquet/PaquetElementCollector.php
src/Plugin/Paquet/PaquetInfo.php
src/Plugin/Paquet/PaquetXmlReader.php
src/Plugin/PluginRelativePath.php
tests/Pipeline/DynamicPipelineDeclarationDetectorTest.php
tests/Plugin/Boot/DistPluginProviderTest.php
tests/Plugin/Boot/PluginBootArtifactBuilderTest.php
tests/Plugin/Boot/PluginBootCacheTest.php
tests/Plugin/Boot/PluginManifestListProviderTest.php
tests/Plugin/Boot/PluginManifestSqlMigratorTest.php
tests/Plugin/Boot/PluginManifestStoreTest.php
tests/Plugin/Boot/PluginManifestTest.php
tests/Plugin/Discovery/PluginDiscoveryTest.php
tests/Plugin/Paquet/PaquetXmlReaderTest.php
tests/Plugin/PluginDirLocatorTest.php
Modifié
.gitignore
ecs.php
phpstan.neon.dist
rector.php
src/Cache/PhpFileWriter.php
src/Pipeline/PluginPipelineCollector.php
src/Plugin/Config/PluginAutoloadCollector.php
src/Plugin/Config/PluginConfigCollector.php
src/Plugin/Config/PluginContainerPrecompiler.php
src/Plugin/Config/PluginSymfonyServicesCollector.php
src/Plugin/PluginPathResolver.php
src/Spip.php
tests/Cache/PhpFileWriterTest.php
tests/Plugin/Config/PluginSymfonyServicesCollectorTest.php
tests/SpipTest.php
==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :
remove: code mort (inutilisé finalement)
Supprimé
src/Plugin/Boot/PluginManifestDivergenceDetector.php
tests/Plugin/Boot/PluginManifestDivergenceDetectorTest.php
Détails : remove: code mort (inutilisé finalement) (2166358f) · Validations · spip / framework · GitLab
==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :
fix: Mutualiser plus de code avec ecrire/inc/plugins.php
Le code de compilation des artefacts plugins est maintenant mutualisé avec le code de compilation des artefacts plugins de ecrire/inc/plugins.php.
Correction de la gestion des menus ici qui oubliait les config/services.php de plugins.
Refs: spip/spip#6090
Supprimé
src/Plugin/PluginDirLocator.php
Modifié
src/Boot/BootArtifactCompiler.php
src/Plugin/Boot/PluginBootArtifactBuilder.php
src/Plugin/PluginPathResolver.php
src/Plugin/PluginRelativePath.php
tests/Plugin/Boot/PluginBootArtifactBuilderTest.php
tests/Plugin/PluginDirLocatorTest.php
==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :
chore: ignore temporary fixtures in qa
Modifié
ecs.php
phpstan.neon.dist
rector.php
Détails : chore: ignore temporary fixtures in qa (9183a6e1) · Validations · spip / framework · GitLab
==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :
refactor(boot): amélioration de la compilation du conteneur
Prise en compte des chemins de paquet.xml notamment.
Ajouté
src/Plugin/Boot/PluginMenuCollector.php
tests/Plugin/Boot/PluginBootArtifactBuilderTest.php
Modifié
src/Boot/BootArtifactCompiler.php
src/Boot/BootOrchestrator.php
src/Cache/PhpFileWriter.php
src/Pipeline/LegacyHeadAssetsListenerRegistrar.php
src/Pipeline/PluginPipelineCollector.php
src/Plugin/Boot/DistPluginProvider.php
src/Plugin/Boot/PluginBootArtifactBuilder.php
src/Plugin/Boot/PluginBootCache.php
src/Plugin/Boot/PluginManifest.php
src/Plugin/Boot/PluginManifestDivergenceDetector.php
src/Plugin/Boot/PluginManifestStore.php
src/Plugin/Boot/PluginManifestStructuresBuilder.php
src/Plugin/Config/DeclarativeContainerCompiler.php
src/Plugin/Config/PluginAutoloadCollector.php
src/Plugin/Config/PluginConfigCollector.php
src/Plugin/Config/PluginContainerPrecompiler.php
src/Plugin/Config/PluginSymfonyServicesCollector.php
src/Plugin/Paquet/PaquetElementCollector.php
src/Plugin/Paquet/PaquetInfo.php
src/Plugin/Paquet/PaquetXmlReader.php
src/Plugin/PluginPathResolver.php
src/Plugin/PluginRelativePath.php
tests/Cache/PhpFileWriterTest.php
tests/Plugin/Boot/DistPluginProviderTest.php
tests/Plugin/Boot/PluginManifestDivergenceDetectorTest.php
tests/Plugin/Boot/PluginManifestSqlMigratorTest.php
tests/Plugin/Boot/PluginManifestTest.php
tests/Plugin/Discovery/PluginDiscoveryTest.php
tests/Plugin/Paquet/PaquetXmlReaderTest.php
==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :
feat: ajout de la méthode platform() dans la facade Spip
Modifié
src/Spip.php
==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :
feat: facade Spip::directories()
Modifié
src/Spip.php
Détails : feat: facade Spip::directories() (8c9f2896) · Validations · spip / framework · GitLab
==============================
Par Matthieu Marcillaud, le 23 juin 2026 à 23h43min :
fix: utiliser kernel.debug au lieu de APP_ENV
Modifié
src/Plugin/Config/PluginContainerPrecompiler.php
Détails : fix: utiliser kernel.debug au lieu de APP_ENV (c0a5c8ad) · Validations · spip / framework · GitLab
==============================
Par Matthieu Marcillaud, le 23 juin 2026 à 14h45min :
test: fix coverage
Modifié
.gitignore
tests/Plugin/Boot/DistPluginProviderTest.php
tests/Plugin/Boot/PluginManifestDivergenceDetectorTest.php
tests/Plugin/Boot/PluginManifestListProviderTest.php
tests/Plugin/Boot/PluginManifestSqlMigratorTest.php
tests/Plugin/Boot/PluginManifestStoreTest.php
tests/Plugin/Boot/PluginManifestTest.php
tests/Plugin/Config/PluginSymfonyServicesCollectorTest.php
tests/Plugin/PluginDirLocatorTest.php
tests/SpipTest.php
Détails : test: fix coverage (716f652b) · Validations · spip / framework · GitLab
==============================
Par Matthieu Marcillaud, le 23 juin 2026 à 14h04min :
fix: La liste des plugins est stockée dans var/state/plugins.php, plus config/plugins.php, car c’est un état enregistré par la gestion des plugins
Ajouté
src/Plugin/Boot/PluginManifestSqlMigrator.php
tests/Plugin/Boot/PluginManifestSqlMigratorTest.php
Modifié
src/Boot/BootArtifactCompiler.php
src/Plugin/Boot/PluginBootCache.php
src/Plugin/Boot/PluginManifest.php
src/Plugin/Boot/PluginManifestListProvider.php
src/Plugin/Boot/PluginManifestStore.php
src/Plugin/Config/DeclarativeContainerCompiler.php
tests/Plugin/Boot/PluginManifestListProviderTest.php
tests/Plugin/Boot/PluginManifestStoreTest.php
tests/Plugin/Boot/PluginManifestTest.php
==============================
Par Matthieu Marcillaud, le 23 juin 2026 à 10h17min :
refactor: préparation du conteneur compilé (avec analyse des plugins) sans charger les fichiers d’options.
WIP.
Ajouté
src/Boot/BootArtifactCompiler.php
src/Boot/BootOrchestrator.php
src/Pipeline/DynamicPipelineDeclarationDetector.php
src/Pipeline/LegacyHeadAssetsListenerRegistrar.php
src/Pipeline/LegacyPipelineListenerRegistrar.php
src/Plugin/Boot/DistPluginProvider.php
src/Plugin/Boot/PluginBootArtifactBuilder.php
src/Plugin/Boot/PluginManifest.php
src/Plugin/Boot/PluginManifestDivergenceDetector.php
src/Plugin/Boot/PluginManifestListProvider.php
src/Plugin/Boot/PluginManifestStore.php
src/Plugin/Boot/PluginManifestStructuresBuilder.php
src/Plugin/Config/DeclarativeContainerCompiler.php
src/Plugin/Discovery/PluginOrderResolver.php
src/Plugin/Discovery/PluginScanner.php
src/Plugin/Paquet/PaquetElementCollector.php
src/Plugin/Paquet/PaquetInfo.php
src/Plugin/Paquet/PaquetXmlReader.php
src/Plugin/PluginDirLocator.php
src/Plugin/PluginRelativePath.php
tests/Pipeline/DynamicPipelineDeclarationDetectorTest.php
tests/Plugin/Boot/DistPluginProviderTest.php
tests/Plugin/Boot/PluginManifestDivergenceDetectorTest.php
tests/Plugin/Boot/PluginManifestListProviderTest.php
tests/Plugin/Boot/PluginManifestStoreTest.php
tests/Plugin/Boot/PluginManifestTest.php
tests/Plugin/Discovery/PluginDiscoveryTest.php
tests/Plugin/Paquet/PaquetXmlReaderTest.php
tests/Plugin/PluginDirLocatorTest.php
Modifié
src/Pipeline/PluginPipelineCollector.php
src/Plugin/Boot/PluginBootCache.php
src/Plugin/Config/PluginAutoloadCollector.php
src/Plugin/Config/PluginConfigCollector.php
src/Plugin/Config/PluginContainerPrecompiler.php
src/Plugin/Config/PluginSymfonyServicesCollector.php
src/Plugin/PluginPathResolver.php
tests/Plugin/Config/PluginSymfonyServicesCollectorTest.php
==============================
Par Matthieu Marcillaud, le 23 juin 2026 à 10h17min :
feat: Classe pour vérifier l’état du cache des plugins
Elle permet de vérifier si le cache des plugins est utilisable pour le hit en cours.
Refs: spip/spip#6090
Ajouté
src/Plugin/Boot/PluginBootCache.php
tests/Plugin/Boot/PluginBootCacheTest.php