【问题标题】:How to redirect artisan tinker output?如何重定向工匠修补程序输出?
【发布时间】:2016-03-17 14:02:48
【问题描述】:

我使用工匠 tinker 控制台制作大型物体。 从该对象返回的方法输出不完全适合 Artisan Tinker 控制台。我想把它保存到文件中。但是怎么做?我用的是linux。

【问题讨论】:

  • 您始终可以在 tinker Log::info('object', $yourLargeObject); 中使用记录器

标签: php bash laravel laravel-artisan


【解决方案1】:

从 Linux/MAC OSX 命令行试试这个:

php artisan tinker | tee /tmp/tinker.out 

完成后,您的输出应该在/tmp/tinker.out 中。

【讨论】:

    【解决方案2】:

    我在为自己寻找答案时发现了您的问题,并通过外部 API 工具(在本例中为 QuickBooks Online)进行了一些临时报告。

    查看 Laravel 5.8 的文档,最直接的写入文件的方法是使用 laravel 的存储引擎。

    第 1 步

    确保您已激活存储驱动程序。这是在/config/filesystems.php 中完成的,我使用了local,因为我会在报告完成后再次停用它。

    第 2 步

    如果你正在使用一个类或方法,你可以导入存储,否则只需在 tinker 中调用存储模块。

    我使用json_encode()JSON_PRETTY_PRINT 来使我的数据易于阅读:

    这个例子对我有用:

    Storage::disk('local')->put('customer_data.json', json_encode((array) $result, JSON_PRETTY_PRINT));
    

    参考资料:

    Lararacasts 问:https://laracasts.com/discuss/channels/laravel/how-to-write-texts-to-file-in-laravel?page=1

    文件系统文档:https://laravel.com/docs/5.8/filesystem

    【讨论】:

      【解决方案3】:

      Storage Facade 很棒,但配置 shiz 很糟糕......只需使用 php 原生函数 file_put_contents() 并在服务器上任何您有权限的地方写入(/tmp/ 效果很好)。

      $object = mySweetMethodThatRetrievesAwesomelyLargeObject();
      file_put_contents('/tmp/my-large-object.obj', json_encode($object, JSON_PRETTY_PRINT));
      

      【讨论】:

        猜你喜欢
        • 2021-03-29
        • 2017-05-26
        • 2018-06-26
        • 2020-11-21
        • 2020-11-16
        • 2023-03-17
        • 2019-03-05
        • 2020-03-13
        • 1970-01-01
        相关资源
        最近更新 更多