J’utilise Composer depuis quelque temps déjà. Je pensais maîtriser l’outil, mais je suis confronté à un cas d’utilisation qui me pose problème.
Ce cas d’utilisation est un peu délicat à exprimer de façon synthétique, aussi je vais prendre un exemple.
- J’utilise le framework Slim V3.
- J’ai développé des « packages Composer » pour des modules fonctionnels indépendants du framework Slim V3 : « dbeurive/backend » et « dbeurive/rbac ».
Note :
Le problème qui se pose est le suivant :L’intégration des modules fonctionnels au framework consiste à écrire un petit enrobage destiné à faciliter l’injection des fonctionnalités dans le DIC.
- Le module « dbeurive/slim_backend » dépend du package « slim/slim ».
- Le module « dbeurive/slim_rbac » dépend du package « slim/slim ».
- Le projet WEB que je vais créer dépendra également du package « slim/slim ».
C’est à dire :
Code : Tout sélectionner
{
"name": "dbeurive/slim_backend",
...
"require": {
"slim/slim": "^3.0@RC",
}
}Code : Tout sélectionner
{
"name": "dbeurive/slim_rbac",
...
"require": {
"slim/slim": "^3.0@RC",
}
}En effet, si je fais cela, les sources du framework Slim vont être présentes en triple exemplaire.Pour tester les packages, j’ai besoin du framework Slim.
Comment gérer ce cas de figure ?
Je peux éventuellement déclarer le namespace associé à Slim dans la section « autoload » :
Code : Tout sélectionner
"autoload": {
"psr-4": {
"slim\\slim\\": "/var/lib/slim/src",
...
}
}Il doit exister une façon propre de gérer ce cas de figure... Mais je ne vois pas.
Une idée ?
Merci,
Denis