Bonjour à tous,

Je suis novice en la gestion de package avec composer.

Et j'aimerais avoir des éclaircissements concernant son fonctionnement.

J'ai développé un module en drupal qui a besoin de se connecter sur l'api client de google. J'ai besoin pour ce module d'utiliser composer afin de mettre en place les dépendances de la librairie google api client. https://github.com/google/google-api-php-client

Donc j'ai installé correctement composer pour cette librairie et cela fonctionne super sur ma machine en local.

Par contre quand je passe les fichiers sur le serveur de production, j'obtiens une erreur:

PHP Fatal error: Call to undefined method Composer\Autoload\ClassLoader::setPsr4() in /var/www/xxx/sites/all/modules/custom/xxxx/google-api-php-client-2.1.3_PHP54/vendor/composer/autoload_real.php on line 43around

Du coup, je voulais avoir des éclaircissements, si j'utilise composer en local sur mon pc pour générer toutes les librairies dépendances nécessaires, et l'autoloader, je présume qu'il n'est pas nécessaire d'avoir composer sur le serveur de production ? Je me trompe ?

Bien à vous.

3 réponses


Salut,

Tu n'as pas besoin de composer sur ton serveur si tu envoies le répertoire vendors sur ton serveur.
Le mieux étant d'avoir composer sur le serveur et juste envoyer le fichier composer.json et lancer la commande composer install sur le serveur.

OK merci Balsakup, je préfère ne pas avoir composer sur mon serveur de production pour l'instant.
Mais quand je passe juste le dossier vendor en production, j'ai l'erreur suivante:
PHP Fatal error: Call to undefined method Composer\Autoload\ClassLoader::setPsr4() in /var/www/xxx/sites/all/modules/custom/xxxx/google-api-php-client-2.1.3_PHP54/vendor/composer/autoload_real.php on line 43
Dois je faire une manipulation sur mon serveur locale avant d'envoyer le dossier vendor sur le serveur de production ?

Bien à toi.

Essaye d'envoyer ton composer.json sur le serveur, même si tu n'utilise pas composer, le fichier contient peut-être une information utile, le psr4 ?
Si tu cherche un peu, tu trouve ça : https://stackoverflow.com/questions/33097447/call-to-undefined-method-composer-autoload-classloadersetpsr4