web-dev-qa-db-fra.com

Mon compositeur n'est pas complètement terminé avec Laravel 4 il se coince avec artisan

Voici l'erreur que j'obtiens:

Script php artisan optimize handling the post-update-cmd event returned with an error

[RuntimeException]  
Error Output:

update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [packages1] ... [packagesN]

Cela montre après:

Writing lock file
Generating autoload files

J'ai essayé de supprimer tous mes dossiers dans mon dossier de fournisseur. Mais cela n'a rien changé.

J'utilise le serveur MAMP sur mon Mac OS X.

PHP version 5.4.10

mcrypt 2.5.8

J'ai juste essayé "Sudo composer update --verbose" et j'ai eu cette erreur:

Sudo composer update --verbose
Password:
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
Script php artisan optimize handling the post-update-cmd event returned with an error

  [RuntimeException]  
  Error Output:
    Exception trace:
     () at phar:///usr/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:148
     Composer\EventDispatcher\EventDispatcher->doDispatch() at phar:///usr/bin/composer/src/Composer/EventDispatcher/EventDispatcher.php:107
 Composer\EventDispatcher\EventDispatcher->dispatchCommandEvent() at phar:///usr/bin/composer/src/Composer/Installer.php:289
 Composer\Installer->run() at phar:///usr/bin/composer/src/Composer/Command/UpdateCommand.php:118
 Composer\Command\UpdateCommand->execute() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:244
 Symfony\Component\Console\Command\Command->run() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:897
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:191
 Symfony\Component\Console\Application->doRun() at phar:///usr/bin/composer/src/Composer/Console/Application.php:117
 Composer\Console\Application->doRun() at phar:///usr/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php:121
 Symfony\Component\Console\Application->run() at phar:///usr/bin/composer/src/Composer/Console/Application.php:83
 Composer\Console\Application->run() at phar:///usr/bin/composer/bin/composer:43
 require() at /usr/bin/composer:15

Voici l'erreur que j'ai trouvée dans mes journaux d'erreur PHP:

[04-Nov-2013 20:45:44 Europe/Berlin] PHP Fatal error:  Class 'Patchwork\Utf8\Bootup' not found in /Applications/MAMP/htdocs/-----/bootstrap/autoload.php on line 46

Je viens d'essayer de tester mon compositeur:

Sudo composer diagnose
Password:
Checking platform settings: OK
Checking http connectivity: OK
Checking composer.json: FAIL
No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license.
Name "andrew13/Laravel-4-Bootstrap-Starter-Site" does not match the best practice (e.g. lower-cased/with-dashes). We suggest using "andrew13/laravel-4-bootstrap-starter-site" instead. As such you will not be able to submit it to Packagist.
Checking disk free space: OK
Checking composer version: OK

Vient d’appliquer la recommandation dans le message d’erreur de la dernière commande. Maintenant, tout se passe comme OK.

Je viens d'essayer ceci:

curl -sS https://getcomposer.org/installer | php -- --check
#!/usr/bin/env php
All settings correct for using Composer

J'obtiens maintenant de nouvelles erreurs dans mes journaux d'erreur PHP:

[05-Nov-2013 05:45:45 Europe/Berlin] PHP Fatal error:  Uncaught exception 'ReflectionException' with message 'Class config does not exist' in /Applications/MAMP/htdocs/---/bootstrap/compiled.php:165
Stack trace:
#0 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(165): ReflectionClass->__construct('config')
#1 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(142): Illuminate\Container\Container->build('config', Array)
#2 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(444): Illuminate\Container\Container->make('config', Array)
#3 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(233): Illuminate\Foundation\Application->make('config')
#4 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(3151): Illuminate\Container\Container->offsetGet('config')
#5 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(103): Illuminate\Exception\ExceptionServiceProvider->Illuminate\Exception\{closure}(Object(Illuminate\Foundation\Application))
#6 /Applications/MAMP/htdocs/---/bootstrap/compiled.php(163): Illuminate\Container\Container->Illum in /Applications/MAMP/htdocs/---/bootstrap/compiled.php on line 165
15
jnbdz

Je crois que cette erreur résulte de l'impossibilité de trouver mcrypt.

Script php artisan optimise la gestion de l'événement post-update-cmd renvoyé avec une erreur

Apparemment, installer mcrypt n'est pas si facile.

  1. Installez le package php5-mcrypt ou vérifiez qu'il a été installé correctement.

    Sudo apt-get install php5-mcrypt
    
  2. Vérifiez si mcrypt a été installé et activé pour PHP:

    php --ri mcrypt
    
  3. Vous avez terminé s'il est écrit:

    mcrypt support => enabled
    

    Sinon, continuez s'il est écrit:

    Extension 'mcrypt' not present.
    
  4. Vérifiez que mcrypt.ini est présent dans le répertoire mods-available de PHP.

    ls /etc/php5/mods-available/mcrypt.ini
    
  5. Si elle indique No such file or directory, créez un lien symbolique de mcrypt.ini vers le répertoire mods-available de PHP.

    Sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available
    
  6. Activer le mod.

    Sudo php5enmod mcrypt
    
  7. Redémarrez Apache.

    Sudo service Apache2 restart
    
  8. Vérifiez à nouveau si mcrypt est activé.

    php --ri mcrypt
    

Les dernières étapes ont été inspirées par Vuk Stanković .

27
Daniel Pelsmaeker

D'accord, nous avons effectué d'autres recherches avec Google et il semble que cela soit lié au chargement automatique en mémoire cache de Composer. Vous pouvez résoudre ce problème de différentes manières.

composer dump-autoload

Cela recréerait le chargement automatique et vous devrait résoudre votre problème pour le moment.

Si cela ne résout pas le problème, essayez de supprimer everything et réinstallez Fresh: [ref]

rm -rf /path/to/composer.lock /path/to/vendor/
composer install

Cela recréerait à peu près tout.

8
Fleshgrinder

Il semble que votre installation de laravel n’a pas fonctionné correctement et qu’une partie du composer.json exécute les php artisan clear-compiled et php artisan optimize si votre application laravel ne fonctionne pas, le composeur échouera. 

Essayez d’exécuter votre mise à jour du composeur sans appeler les scripts Laravel.

php composer update --no-scripts

Après cela, vous pouvez soit exécuter manuellement les commandes du bloc de scripts de votre composer.json. Sinon, vous pouvez simplement exécuter un standard

php composer update

à nouveau qui exécutera les scripts pour vous.

3
Hailwood

Pour résoudre ce problème, vous devez installer mcrypt.
Dans Ubuntu, exécutez la commande suivante: 

Sudo apt-get install php5-mcrypt

Puis mettez à jour le compositeur:

composer update 
0
BM2ilabs

Une autre solution pour moi, régler xdebug.scream = 1 pose un problème:

1) Recherchez le fichier de configuration xdebug. 

$ Sudo find / -name xdebug.ini

2) Editez le fichier en utilisant n’importe quel éditeur de texte.

$ Sudo vi /your_path/xdebug.ini

3) Définissez xdebug.scream = 0

4) Recharger le serveur

$ Sudo service Apache2 reload
0
X Sham

J'avais un problème similaire lorsque j'essayais d'exécuter Composer Update et aucune des solutions ci-dessus n'avait fonctionné. Il s’avère que j’avais 2 sections obligatoires dans le fichier composer.json, ce qui est faux en réalité. 

"require": {
    "laravel/framework": "4.1.*"
},
"config": {
    "preferred-install": "dist"
},
"minimum-stability": "stable",
"require": {
    "barryvdh/laravel-ide-helper": "1.*",
    "zizaco/confide": "3.2.x",
    "laravelbook/ardent": "dev-master",
    "zizaco/entrust": "dev-master"
},
"require-dev": {
    "way/generators": "2.*",
    "fzaninotto/faker": "1.3.*@dev"
}

La combinaison des deux comme ci-dessous a résolu mon problème.

"require": {
    "laravel/framework": "4.1.*",
    "barryvdh/laravel-ide-helper": "1.*",
    "zizaco/confide": "3.2.x",
    "laravelbook/ardent": "dev-master",
    "zizaco/entrust": "dev-master"
},

Si le problème persiste, essayez de supprimer le répertoire composer.lock et le répertoire des fournisseurs, puis exécutez la commande

mv ~/.composer/cache ~/.composer/cache.bak

Pour vider le cache du compositeur et enfin exécuter 

Sudo composer install

Cela devrait résoudre le problème.

0
Mohamed Azher