SlimFramework 3 输入和输出到 cli 而 运行

SlimFramework 3 input and output to cli while running

在普通的 php 脚本中,您可以这样做:

print "run in 3\n"
sleep(1);
print "run in 2\n";
sleep(1)

等等... 您获得输出并稍等片刻,您将获得下一个输出。

所以现在我 运行 一个在 cli 上带有 slimframework 的脚本:

$env = \Slim\Http\Environment::mock([
'REQUEST_METHOD' => 'GET',
'HTTPS' => true,
'SERVER_NAME' => 'www.domain.tld',
'REQUEST_URI' => '/cli_action'
]);
$settings['environment'] = $env;
...
$app->run();

它工作正常并完成工作(发送电子邮件)。 但是我第一次在 cli 上获得输出是在脚本结束时。 在 运行ning?

时是否有一个优雅的解决方案来获取输出 ( log-messages )

感谢您的帮助。

托马斯

Slim 默认使用输出缓冲。实例化新的 \Slim\App 对象时,通过将 outputBuffering 设置为 false:

来禁用输出缓冲
$settings ['outputBuffering'] = false;
$app = new \Slim\App($settings);