【问题标题】:Can you reload Boris in Laravel 4.1 without having to exit?你可以在 Laravel 4.1 中重新加载 Boris 而无需退出吗?
【发布时间】:2014-01-02 14:51:20
【问题描述】:

在使用php artisan tinker 时,我更改了项目中的一些类文件。有没有办法重新加载 REPL 而无需再次输入 exitphp artisan tinker

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    如果序列 CTRL+d, up, enter 对你来说太长,你可以@ 987654321@ 与 laravel,但上次我检查你不能 Redefine Class Methods or Class ,所以我认为这不是一件小事。

    如果你只做修补,你可以缩短开始修补会话的时间

    $ while true; do php artisan tinker; done
    

    现在只需 CTRL+d 将重新加载修补程序会话。

    如果输入太多,您可以使用以下命令定义终端/iTerm 配置文件:

    /bin/sh -c 'while true; do php artisan tinker; done'
    

    【讨论】:

    • 哦,是的,4 次按键太长了!循环是一个很好的补救措施。我想知道修补匠(或鲍里斯)是否可以自行重置。它应该很容易实现。
    • @Dave 在 PHP 中重新定义类和函数变得容易了吗?
    • 我认为重置 REPL 只需要在 boris 中设置一个钩子并启动一个新的 \Boris\Boris 实例。
    • I changed some class files in my project 那么你或鲍里斯将需要重新包含它们。最后我检查了一下,that 将导致I'm sorry @Dave, I'm afraid I can't do that。 PHP 不是为长时间运行的进程而设计的,它evolved 来自一个 CGI 工具,其运行时具有 HTTP 请求的生命周期。您的 Boris 钩子需要的是 Python reload 的 PHP 等效项。如果存在,那应该很容易。
    • 我正在考虑使用 PCNTL 进行重置(来自 TinkerCommand)。但现在我想了想,它可能无法完全正常工作,如果确实如此,实施起来似乎有点笨拙。
    猜你喜欢
    • 2013-09-07
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2019-09-14
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多