代码之家  ›  专栏  ›  技术社区  ›  harley81

运行时向cli输入和输出slimframework 3

  •  3
  • harley81  · 技术社区  · 6 年前

    在普通的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上获得输出是在脚本结束时。 是否有一个优雅的解决方案来获得运行时的输出(日志消息)?

    谢谢你的帮助。

    托马斯

    1 回复  |  直到 6 年前
        1
  •  2
  •   Nima    6 年前

    slim默认使用输出缓冲。当实例化一个新的\slim\app对象时,通过设置禁用输出缓冲 outputBuffering false :

    $settings ['outputBuffering'] = false;
    $app = new \Slim\App($settings);