2013-05-23 2 views
0

Dans notre société, nous visons à utiliser Symfony2 pour tous nos nouveaux projets. Il y a quelques paquets supplémentaires que nous ajoutons presque toujours aux projets, tels que FOSUserBundle et KnpMenuBundle. Nous aimerions maintenir un fichier composer.json que nous pourrions simplement copier dans un nouveau dossier de projet, lancer composer.phar install (ou créer-projet, selon ce qui fonctionnerait) et le faire installer symfony2 avec toutes les dépendances et les paquets supplémentaires que nous voulons utiliser . En d'autres termes, le but n'est PAS d'exécuter d'abord php composer.phar create-project symfony/framework-standard-edition path/ 2.2.1, puis d'éditer composer.json pour ajouter/supprimer des ensembles, et enfin exécuter la mise à jour composer.phar pour installer les ensembles dont nous avons besoin.maintenir un composer.json pour la réutilisation entre les projets

Avez-vous des idées sur la façon dont cela pourrait être réalisé?

Répondre

1

Vous pouvez créer un référentiel VCS (c.-à-git) pour votre composer.json toujours check-in/valider tous vos changements. Comme compositeur utilise json et qu'il n'y a pas de support natif pour les commentaires json, il est un peu plus difficile d'avoir un fichier composer.json où vous pouvez simplement commenter/décommenter les paquets que vous installez régulièrement.

Mais il y a 2 façons d'atteindre cet objectif.

1) utiliser le convertisseur composer-yaml de IgorW qui peut convertir composer.json en un fichier .yml à l'envers.

2) Seldaek/Jordi Boggiano mentioned d'autres commentaires peuvent être implémentés dans composer.json.

{ 
    "_comment" : { 
     "friendsofsymfony/rest-bundle" : "0.12.0", 
     "_" : "_" 
    },  
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "*@dev", 

     // ... more stuff here 
    }, 

    // more stuff here 
} 

De cette façon, vous pouvez facilement copier des paquets et de votre installation actuelle en déplaçant simplement les lignes de commentaire à besoin. (l'entrée " _": "_" est là pour avoir une virgule de fin après tous les paquets dans _comment et a encore JSON valide).

... mais cela ne vous donne PAS un projet fonctionnel dès la sortie de la boîte.

Conclusion:

La plupart des packs doivent configuration et au moins tous doivent être enregistrées dans le noyau afin de travailler.

Juste avoir un composer.json dans votre dépôt ne vous aidera pas.

Vous pouvez bifurquer symfony/symfony standard ... ajouter toutes les modifications souhaitées (enregistrement des faisceaux, en changeant composer.json) dans votre repo et maintenir cette prise en pension.

La maintenance de ce repo nécessitera un peu de travail car un repo forké ne se met pas à jour avec les derniers validations. Vous devrez fusionner dans les derniers commits de symfony/symfony-standard si vous voulez garder votre repo à jour.

Mais créer un propre est certainement la voie à suivre ... avoir seulement un compositeur.json vous pouvez passer autour afin d'avoir un projet de travail avec toute votre configuration et les bundles après avoir appelé "composer l'installation" est (actuellement) pas possible.

+0

Merci pour cette réponse détaillée. Même si ce n'était pas exactement la réponse que j'espérais, je peux maintenant voir que la création d'un modèle personnalisé pour nos projets Symfony nécessitera un peu plus de réflexion. Nous ne voulons pas avoir à maintenir notre propre fourchette de Symfony, donc je me tourne maintenant vers une solution automatisée utilisant Phing ou Ant qui compilerait les différentes parties. –

1

Vous pouvez bifurquer symfony-standard à github, modifier composer.json, mettre à jour composer.lock, puis la caisse de votre propre copie et exécutez composer install

Questions connexes