如何让WP-CLI eval-file命令向stderr报告错误?

时间:2017-02-20 作者:Chapman Atwell

我正在编写一个一次性脚本来更新数据库中的一些帖子。每当我的脚本出现错误时,它就会默默地失败。

我遵循了本期Github中的建议,但没有成功:

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

我也试着用debug set to true:

wp --debug eval-file my-script.php
我试过了setting WP_DEBUG to true 在里面wp-cli.yaml:

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

1 个回复
最合适的回答,由SO网友:Chapman Atwell 整理而成

按照中的建议,在脚本顶部添加以下行Github issue, 应报告任何运行时错误:

ini_set( \'display_errors\', 1 );
error_reporting(E_ALL);
然而,它不会报告语法错误,这是您编写脚本时的一大难题。这是我的解决方法:

在我的脚本底部添加以下行:

// my-script.php
<?php
ini_set( \'display_errors\', 1 );
error_reporting(E_ALL);

global $wpdb;

// rest of script

echo "Script complete.\\n";
对脚本进行更改。

// 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";
运行脚本:

$ wp --debug eval-file my-script.php
如果我看不见Script complete., 运行php linter:

$ php -l my-script.php

Parse error: syntax error, unexpected \'.\' in my-script.php on line 7
Errors parsing my-script.php
修复语法错误。

重新运行脚本