Question

Mon projet se compose de plusieurs bundles, certains d'entre eux sont nécessaires et d'autres que j'utiliserai sur des serveurs spécifiques.maintenant je dois ajouter des dépendances pour un bundle non requis.je pense que c'est un gaspillage de l'ajouter en tant que dépendance de projet dans le composant principal.json car je ne pourrais pas utiliser ce code si je n'utilise pas le bundle.

est-il possible d'avoir un fichier composer.json dans ce bundle ?si ce n'est pas possible, comment puis-je gérer mon cas ?

Exemple

src/
   Project/
      RequiredFirstBundle/
      RequiredSecondBundle/
      Non-RequiredBundle/
              composor.json 

J'ai essayé:

//Path: src/Project/Non-RequiredBundle/composer.json

{
    "name": "project/non-requiredbundle",
    "description": "desc",
    "type": "symfony-bundle",
    "license": "MIT",
    "authors": [
        {
            "name": "name",
            "email": "email"
        }
    ],
    "require": {
        "symfony/framework-bundle": "~2.2",
        "another/dependency": "*"
    },
    "autoload": {
        "psr-0": { "Project\\Non-RequiredBundle": "" }
    },
    "target-dir": "Project/Non-RequiredBundle"
}

mais je ne vois pas que le fichier est utilisé lorsque j'exécute composer.phar update

Merci

Était-ce utile?

La solution

Si je vous comprends bien, vous envisagez soit d'avoir UNE version du logiciel contenant tout et de la déployer partout, soit d'avoir PLUSIEURS versions avec différentes dépendances déployées sur le serveur individuel de ce logiciel.

Je ne pense pas que la raison devrait être de sauvegarder quelques octets sur le disque dur.

Mais le compositeur ne peut pas vous aider.En fait, vous êtes obligé d'inclure toute dépendance que vous souhaitez utiliser quelque part dans ce composer.json pour que Composer l'inclue dans le chargeur automatique.

J'opterais pour la "version unique" et j'inclurais simplement toute dépendance nécessaire.Il n’y a pas lieu de s’inquiéter du déploiement de parties logicielles inutilisées.Vous le ferez tout le temps, même avec les pièces que vous pensez que les utilisateurs utiliseront.

Autres conseils

Si vous souhaitez partager certains de vos offres groupées, vous devez les développer en tant qu'offres groupées de fournisseurs, comme celles de tiers.Par conséquent, vous devez créer un référentiel Version-Control pour chacun de vos bundles et ajouter un composer.json pour chaque bundle.Pour rendre vos bundles disponibles pour le fichier symfony composer, vous devez ajouter votre URL VersionControl en tant que ressource.Cela pourrait ressembler à ceci :

"repositories": [
    {
        "type": "vcs"
        "url": "https://github.com/igorw/monolog"
    }
],

Bon codage :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top