IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Composer.phar mutualiser librairies


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre chevronné Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Par défaut Composer.phar mutualiser librairies
    Bonjour à tous,

    Je découvre Composer pour gérer les dépendances de mes projets PHP qui sont pour la plus part basé sur le ZendFramework/Symphony.

    Je souhaiterais savoir si il y a un moyen de mutualiser les librairies pour mes différents projets dans le but d'économiser l'espace disque?

    J'ai installé Zend dans mon système, et maintenant je voudrai dire a composer qu'il peut trouver la librairie "zendframework/zendframework: 2.5.2" dans tel répertoire. Et donc qu'il n'a pas a faire une copie de la librairie depuis le git.

    J'ai vue que composer utilisais un cache pour éviter de cloner a chaque fois. Mais il fait toujours une copie des librairie requise dans mon projet.



    Merci d'avoir pris le temps de me lire,
    Louis

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Tu peux faire composer global require, mais je ne pense pas que c'est ce que tu veux: ça a pour effet d'installer le paquet dans le répertoire home de composer. Mais c'est plus pour pouvoir installer des outils globaux genre codesniffer que des bibliothèques (et pas librairies!). Tu seras toujours obligé d'inclure le vendor/autoload.php global dans ce cas.

    Si tu veux vraiment mutualiser tes classes, tu as la solution de les mettre où tu veux, et ensuite d'indiquer leur chemin dans la section autoload de tes composer.json (sans les ajouter dans la section require), et vendor/autoload.php les chargera à la volée (sous réserve qu'elles respectent les conventions de nommage acceptées par composer).

    L'installation par projet est d'ailleurs une bien meilleure solution. Ceux qui ont connu l'enfer des dépendances de PEAR ne veulent plus revivre ça: tu as besoin de PEAR/PACKAGE-A v1.5, tu l'installes. Ensuite, quelques semaines après tu as besoin de PEAR/PACKAGE-B v2.0 que tu installes, mais PEAR/PACKAGE-B v2.0 a besoin de PEAR/PACKAGE-A v2.0, qui est incompatible avec PEAR/PACKAGE-A v1.5, et ton code ne fonctionne qu'avec la v1.5, tu es foutu, tu es obligé de tout réorganiser à la main. Avec composer, tu peux avoir des multiples versions des bibliothèques sans te soucier des conflits de version. Tu penses vraiment que les quelques Ko d'espace disque récupérés vaillent la peine? Choisis l'option --prefer-source si tu veux éviter de télécharger tout le dépôt git du paquet.

  3. #3
    Membre chevronné Avatar de Gaulouis
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 252
    Par défaut
    J'imaginais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    composer install --prefix="~/local/vendor"
    Mais bon il y a sûrement une raison...

    Et puis tu as raison, c'est vrai que pour 10Mo à 100Mo je peux me permettre plusieurs centaine de projets (il me reste 10Go d'espace libre).


    En tout cas merci pour le temps que tu nous à donné en répondant à ma question.

    PS: "bibliothèque" Merci. Je ne ferais plus l'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] fichier composer.phar introuvable
    Par ruben06 dans le forum Symfony
    Réponses: 3
    Dernier message: 18/11/2014, 09h58
  2. [2.x] problème avec php composer.phar update
    Par zoub0 dans le forum Symfony
    Réponses: 2
    Dernier message: 08/01/2014, 19h34
  3. Tutoriel zf2 : composer.phar ne fait rien du tout !
    Par CinePhil dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/05/2013, 02h16
  4. Réponses: 7
    Dernier message: 10/05/2013, 16h21
  5. Réponses: 5
    Dernier message: 09/12/2002, 22h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo