1
votes

Le compositeur génère une erreur de mémoire insuffisante lors de l'installation de FOSUserBundle

J'essaye d'installer FOSUserBundle en utilisant composer require friendsofsymfony / user-bundle "~ 2.0" mais une erreur s'est produite:

C:\wamp\www\sym>composer diag
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB
723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E32
8C AD90147D AFE50952
OK
Checking composer version: WARNING
You are not running the latest stable version, run `composer self-update` to upd
ate (1.4.1 => 1.8.5)

C:\wamp\www\sym>composer require friendsofsymfony/user-bundle
Using version ^2.1 for friendsofsymfony/user-bundle
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocat
e 12 bytes) in phar://C:/ProgramData/ComposerSetup/bin/composer.phar/src/Compose
r/DependencyResolver/Solver.php on line 220

Check https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-error
s for more info on how to handle out of memory errors.
C:\wamp\www\sym>

J'ai recherché le problème et j'ai trouvé cette réponse: Composer nécessite épuisé de mémoire. Erreur fatale PHP: Taille mémoire autorisée de 1610612736 octets épuisés

J'ai changé mon php.ini en 1024M mais rien (même la mise à jour du compositeur génère la même erreur) puis à -1 rien ne s'est passé.

Je me demande où puis-je trouver composer.phar pour utiliser cette commande (j'ai installé mon composer via le programme d'installation de Wondows) :

php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle


1 commentaires

MISE À JOUR: j'ai résolu mon problème en utilisant wamp64


3 Réponses :


0
votes

Remplacez la valeur php.ini par -1 . Cela permettra au compositeur d'utiliser toute votre mémoire libre. Exécutez composer diag pour vérifier le statut du compositeur et réessayez composer require friendsofsymfony / user-bundle

Si cela ne fonctionne pas encore, c'est probablement un problème de connexion Internet


2 commentaires

J'ai déjà essayé -1 mais cela n'a pas fonctionné et j'ai mis à jour mon message en utilisant composer diag et en essayant de réinstaller fosuserbundle


Ce problème est fréquent avec Windows ... Tout ce que vous pouvez faire est d'essayer plus tard :-(



1
votes

C'est comme ça que je le fais

/usr/local/bin/composer.phar

Vous devez utiliser des backticks plutôt que des guillemets simples, mais je n'ai jamais eu de problème avec cela.

Vous pourrait également utiliser le chemin réel vers votre fichier composer.phar

/usr/bin/composer.phar

ou

php -d memory_limit=-1 `which composer` require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle

Commandes de console utiles


4 commentaires

c'est le résultat de la commande: Impossible d'ouvrir le fichier d'entrée:


mais pourquoi le compositeur create-project symfony / framework-standard-edition project "3.2. *" fonctionne bien et d'autres ne le font pas?


ça pourrait être un problème de wamp? J'utilise 32 bits au lieu de 64 bits?


@Julie vous êtes-vous assuré d'utiliser des backticks pour quel compositeur par rapport aux guillemets simples «quel compositeur»? Parce que j'obtiens la même erreur lorsque j'utilise des guillemets simples au lieu de backticks



0
votes

Il y a certaines choses qui vous aideront beaucoup.

  1. Assurez-vous que vous utilisez la dernière version de Composer (elle indique que vous exécutez la v1.4.1, c'est-à-dire plus de deux ans ).
  2. Assurez-vous que vous utilisez au moins une version récente de PHP - la version 7 a considérablement amélioré l'utilisation de la mémoire - en réduisant parfois de moitié la quantité de mémoire utilisée. Les versions 7.2 ou (meilleures) 7.3 devraient être les versions actuellement utilisées (printemps 2019).
  3. Limitez activement le nombre de versions différentes de packages que Composer doit vérifier pour voir ce qui pourrait être valide à utiliser.
    • Roave / SecurityAdvisories est un bon début. Cela vous empêchera également d'installer des versions de packages présentant des problèmes de sécurité connus. Cela limitera également l'espace de recherche pour les packages valides, permettant à Composer d'ignorer de larges pans de packages possibles, ce qui signifie qu'il n'a pas besoin de contenir de grandes quantités de données pour les différentes combinaisons potentielles.
    • Vous pouvez ajouter d'autres versions de packages pour restreindre davantage l'espace de recherche. Par exemple, vous pouvez avoir un certain nombre de versions de caractères génériques "*" (également connues sous le nom de «Contrainte de version de l'Étoile de la mort») - qui sont presque toujours une mauvaise idée. La plupart du temps, un numéro de version de la forme "^ 2.0" ou "^ 3.4" serait préférable - autorisant les mises à niveau à partir de versions et de fonctionnalités de correction de bogues (les 3e et 2e chiffres), mais pas les versions majeures, qui peuvent souvent contenir des changements de rupture.

1 commentaires

Une question s'il vous plaît si je dois installer le fosuserbundle sous mon projet wamp \ www \ mon projet ou sous wamp \ www parce que j'exécute accidentellement la ligne de commande: composer require friendsofsymfony / user-bundle "~ 2.0" sous wamp \ www et cela a fonctionné! !!! Je suis totalement confus