web-dev-qa-db-fra.com

Comment obtenir la commande WP-CLI eval-file pour signaler les erreurs à stderr?

J'écris un script unique pour mettre à jour certains articles de la base de données. Chaque fois qu'il y a une erreur dans mon script, il échoue silencieusement.

J'ai suivi les suggestions de ce numéro de Github sans succès:

https://github.com/wp-cli/wp-cli/issues/706

J'ai également essayé d'exécuter mon script avec debug réglé sur true :

wp --debug eval-file my-script.php

Et j'ai essayé mettre WP_DEBUG à true in wp-cli.yaml:

# Subcommand defaults (e.g. `wp eval-file config`)
eval-file config:
    extra-php: |
        define( 'WP_DEBUG', true );

Encore un silence de mort.

2
Chapman Atwell

L'ajout des lignes suivantes en haut de votre script, comme recommandé dans Le problème Github , devrait signaler les erreurs d'exécution:

ini_set( 'display_errors', 1 );
error_reporting(E_ALL);

Cependant, les erreurs de syntaxe ne seront pas signalées, ce qui constitue un gros problème lorsque vous essayez d'écrire votre script. Ceci est ma solution de contournement pour cela:

  • Ajouter la ligne suivante en bas de mon script:

    // my-script.php
    <?php
    ini_set( 'display_errors', 1 );
    error_reporting(E_ALL);
    
    global $wpdb;
    
    // rest of script
    
    echo "Script complete.\n";
    
  • Apporter des modifications au script.

    // my-script.php
    <?php
    ini_set( 'display_errors', 1 );
    error_reporting(E_ALL);
    
    global $wpdb;
    
    // rest of script
    derp-some-invalid-syntax...
    
    echo "Script complete.\n";
    
  • Script de lancement:

    $ wp --debug eval-file my-script.php
    
  • Si je ne vois pas Script complete., lancez php linter:

    $ php -l my-script.php
    
    Parse error: syntax error, unexpected '.' in my-script.php on line 7
    Errors parsing my-script.php
    
  • Corrige les erreurs de syntaxe.

  • Relancez le script.
1
Chapman Atwell