Composer: cas d'utilisation non supporté ?
Posté : 16 oct. 2015, 15:56
Bonjour,
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.
Note :
C’est à dire :
Note :
Comment gérer ce cas de figure ?
Je peux éventuellement déclarer le namespace associé à Slim dans la section « autoload » :
Mais, en faisant cela, j’intègre une dépendance vers une librairie « externe » au projet... L’utilisateur du package devra éditer le fichier « composer.json »... Bref, ce n’est pas pratique. Cette solution n’est pas satisfaisante.
Il doit exister une façon propre de gérer ce cas de figure... Mais je ne vois pas.
Une idée ?
Merci,
Denis
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