Quelques explications : la proposition ajoute symfony/flex
dans SPIP, qui est un outil qui exécute des actions au moment des composer install
ou composer update
.
Ces actions peuvent être diverses, mais consistent souvent à créer, compléter ou mettre à jour des fichiers de configuration.
Pour connaître la liste des actions à réaliser, l’outil interroge un dépôt de recettes, et regarde s’il existe une recette pour telle ou telle librairie chargée via composer. Note: les recettes sont déclarées ailleurs que sur le git de la librairie installée (c’est un choix volontaire de symfony).
Dans de cas de SPIP par exemple, on déclare dans le composer.json un dépôt de recettes supplémentaire (pointant sur https://get.spip.net/flex/recipes/index.json
), en plus de celui de symfony par défaut (dont les sources sont là GitHub - symfony/recipes: Symfony Recipes Repository).
Ce fichier, un peu comme pour le dépôt Composer à côté, déclare une liste de recettes existantes pour certains projets ; par exemple à l’heure où j’écris, il existe une recette pour spip-league/kernel
à partir de sa version 1.0
⁽¹⁾
Les actions réalisées sont déclarés pour chaque recette dans un fichier dédié, pour reprendre le même exemple, celui là : https://get.spip.net/flex/recipes/spip-league.kernel.1.0.json (dont les sources se trouvent (en ébauche) là Connexion · GitLab)
On trouve par exemple dedans une clé «manifest» qui complète une action de symfony : ici par exemple ajoutant des entrées dans le fichier .gitignore
"gitignore": [
"/config/*.php",
"/plugins-dist/",
"/squelettes-dist/",
"/prive/",
"/ecrire/"
]
Ou encore la création d’un fichier de config
"files": {
"config/spip/routes.php": {
"contents": [
"<?php",
"",
"return [",
" 'front_office' => '/',",
" 'back_office' => 'ecrire/', # Should be /ecrire",
"];",
""
],
"executable": false
},
Possiblement c’est peut être un moyen pour éditer le .htaccess
par les plugins, mais pas certain qu’il y ait des choses adaptées : dans les «symfony/recipes-contrib», on trouve recipes-contrib/symfony/apache-pack/1.0 at ced96743676bdd5597ac364187945fa5f702ebf2 · symfony/recipes-contrib · GitHub mais il ne fait «que» créer le fichier .htaccess ; Et c’est la même chose pour les autres recipes de ce dépot de contribs.
⁽¹⁾
Flex prend la recette pour la version la plus haute déclarée par rapport à la librairie qu’on charge :
- s’il y a déclaré 3 recettes
spip-league/kernel 1.0
spip-league/kernel 1.1
et spip-league/kernel 1.2
- et qu’on installe la lib
spip-league/kernel 1.0
, il exécutera les recettes pour 1.0. ;
- si on installe
spip-league/kernel 1.5
ou spip-league/kernel 2.0
, il exécutera uniquement spip-league/kernel 1.2
(le plus haut déclaré) (mais pas les précédents 1.0, 1.1)
Autrement dit, ce n’est pas comme le tableau $maj
des fichiers d’administrations de SPIP.
Chaque recipe
indique l’ensemble des commandes qu’il doit exécuter à partir de cette version de la librairie.