[framework ↪ 5.x] 12 commits

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

Détails : Merge branch '6090-spip-5-amelioration-du-conteneur-compile' into '5.x' (95f3712c) · Validations · spip / framework · GitLab

==============================
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

Détails : fix: Mutualiser plus de code avec ecrire/inc/plugins.php (db8d9df9) · Validations · spip / framework · GitLab

==============================
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

Détails : refactor(boot): amélioration de la compilation du conteneur (cedf8241) · Validations · spip / framework · GitLab

==============================
Par Matthieu Marcillaud, le 25 juin 2026 à 18h22min :

feat: ajout de la méthode platform() dans la facade Spip

Modifié
src/Spip.php

Détails : feat: ajout de la méthode platform() dans la facade Spip (c4c11744) · Validations · spip / framework · GitLab

==============================
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

Détails : fix: La liste des plugins est stockée dans var/state/plugins.php, plus... (80e32d76) · Validations · spip / framework · GitLab

==============================
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

Détails : refactor: préparation du conteneur compilé (avec analyse des plugins) sans... (244f9a78) · Validations · spip / framework · GitLab

==============================
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

Détails : feat: Classe pour vérifier l’état du cache des plugins (e536a969) · Validations · spip / framework · GitLab