web-dev-qa-db-fra.com

Comment installer les packages Composer PHP sans Composer?

J'essaie d'installer l'API Coinbase PHP mais cela nécessite Composer:

https://github.com/coinbase/coinbase-php

Je recherche une solution universelle PHP (peut-être une fonction) pour me permettre d'installer les packages composer directement sur mon serveur, sans avoir à utiliser Composer.

Je pense que les développeurs de Composer pensent qu’ils aident les gens, mais en réalité, des milliers de développeurs débutants sont en train d’empêcher l’apprentissage du développement Web par la "barrière des compositeurs".

Cela aiderait vraiment s'il y avait une solution flexible ou une approche où nous pourrions installer sans Composer? Comment puis-je faire ceci?

S'il vous plaît ne répondez pas avec un commentaire sarcastique . Il y a des gens qui ne veulent pas utiliser Composer et je ne vois pas pourquoi nous devrions être regroupés dans un logiciel tiers spécifique pour pouvoir faire du développement Web.

69
Amy Neville

Le fichier composer.json] répertorie les dépendances. Dans votre exemple:

"require": {
    "php": ">=5.5.0",
    "guzzlehttp/guzzle": "^6.0",
    "psr/http-message": "^1.0",
    "psr/log": "^1.0"
},

Vous devez ensuite trouver les packages correspondants dans le site packagist . Répétez le même processus pour chaque dépendance: recherchez des dépendances supplémentaires dans leurs fichiers composer.json correspondants et effectuez une nouvelle recherche.

Lorsque vous disposez enfin d'une liste complète des packages requis, il vous suffit de les installer un par un. Pour l'essentiel, il suffit de déposer les fichiers quelque part dans votre répertoire de projet. Mais vous devez également vous assurer que PHP peut trouver les classes nécessaires. Puisque vous n'utilisez pas le chargeur automatique de Composer, vous devez les ajouter à votre propre autochargeur personnalisé. Vous pouvez comprendre les informations à partir des fichiers composer.json respectifs, par exemple:

"autoload": {
    "psr-4": { "Coinbase\\Wallet\\": "src/" }
},

Si vous n'utilisez pas de chargeur automatique de classe, vous devez déterminer les instructions individuelles require_once. Vous aurez probablement besoin de beaucoup d'essais et d'erreurs car la plupart des auteurs de bibliothèques ne se soucient pas de documenter cela.

Aussi, et juste au cas où il y aurait confusion à ce sujet:

  • Composer a un programme d'installation graphique officiel pour Windows et une procédure d'installation en ligne de commande pour copier et coller sur toutes les plateformes.
  • Composer peut être exécuté localement et sa sortie simplement téléchargée ailleurs. Vous n'avez pas besoin de SSH dans votre hébergement partagé.
  • La commande nécessaire pour installer une bibliothèque peut être copiée et collée à partir du site Web du paquet. Même si le responsable du paquet ne se souciait pas de la documenter, packagist.org le générait par défaut.

Composer n’est pas parfait et ne convient pas à tous les cas d’utilisation mais, s’agissant d’installer une bibliothèque reposant sur cette bibliothèque, c’est sans aucun doute la meilleure alternative, et elle est plutôt correcte.


J'ai vérifié d'autres réponses qui venaient après les miennes. Ils tombent principalement dans deux catégories:

  1. Installer une bibliothèque et écrire un script de téléchargement personnalisé avec elle
  2. Utiliser une interface Web en ligne pour Composer

À moins que quelque chose ne me manque, aucun d’entre eux ne répond aux plaintes formulées par le PO:

  • Courbe d'apprentissage
  • Utilisation de logiciels tiers
  • Possibilité de développer directement sur le serveur (en utilisant SSH, je présume)
  • Arbre de dépendance potentiellement profond
27
Álvaro González

Vous pouvez essayer https://php-download.com/ qui peut vous aider à télécharger toutes les dépendances la plupart du temps avec le dossier vendor. Cela promet que composer n'est pas requis. J'ai essayé moi-même. Il trouve et crée tous les dossiers requis et le télécharge pour le télécharger. Fonctionne parfaitement !!

76
jahajee.com

Je devais le faire pour un serveur FTP auquel je n'avais pas accès SSH. Le site répertorié ici a fonctionné, puis j'ai réalisé que vous pouvez simplement effectuer une installation de composer sur votre propre serveur (à l'aide de la version PHP de votre cible), puis copier tous les fichiers.

3
Adam Thompson

Ce n'est pas la solution ultime mais pour moi, cela a été d'une grande aide pour la plupart des cas: https://github.com/Wilkins/composer-file-loader

Vous permet de charger le fichier composer.json exactement comme le ferait composer. Cela vous permet de charger le fichier composer.json sans composer (donc théoriquement PHP 5.2 est suffisant)

Je sais que la question est ancienne mais j'espère que cela aidera quelqu'un.

3
helderk

J'utilise l'hébergement partagé pour un site Web et je ne peux pas y exécuter de commandes. En plus d'exécuter composer via une requête de script php que je demande via un navigateur, j'utilise généralement ce flux de travail:

  • Assurez-vous que php est installé localement.
  • Faire un répertoire sur le bureau.
  • téléchargez composer.phar depuis https://getcomposer.org/download/ (sous en-tête * Téléchargement manuel ) et placez-le dans l'annuaire.
  • faire un fichier composer.json y coller le contenu suivant

     {
         "require": {
             "coinbase/coinbase": "~2.0"
         }
     }
    
  • Accédez au répertoire contenant le shell de votre choix (bash, git-bash, cmd, windows bash)

  • tapez php composer.phar updatescreenshot of bash output
  • Téléchargez le répertoire des fournisseurs sur votre serveur Web via FTP ou tout autre mécanisme que vous utilisez.
  • incluez dans votre projet php où vous chargez vos bibliothèques (modifiez le chemin vers lequel vous avez téléchargé le répertoire du vendeur afin qu'il inclue ce fichier à chargement automatique)

    require_once('vendor/autoload.php');
    

De cette façon, vous bénéficiez des avantages de la gestion des dépendances sans avoir à inclure manuellement tout le nombre de fichiers et à télécharger toutes les dépendances manuellement. Il est aussi simple de les mettre à jour que de taper php composer.phar update puis de remplacer le répertoire du fournisseur. sur votre serveur avec le nouveau.

2
Tschallacka