【问题标题】:Laravel 5.1: Changing PHP version used by Artisan FacadeLaravel 5.1:更改 Artisan Facade 使用的 PHP 版本
【发布时间】:2015-11-02 05:14:36
【问题描述】:

我有一个应用程序将通过控制器运行 Artisan 命令:

Artisan::call('myCommand');

问题是我的生产服务器的终端 PHP 版本没有跟上速度,所以他们需要修复我运行 composer 和 artisan 命令(我现在使用 /usr/bin/php55)。

现在,当我尝试通过控制器调用 Artisan 命令时,出现以下错误:

Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in on line 54

此错误是由于 PHP 版本错误,这与我之前在生产服务器上遇到的问题一致。

有谁知道如何更改 Artisan Facade 使用的 PHP 版本?最好不要更改任何核心 Laravel 代码:)

谢谢

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.1 laravel-artisan


    【解决方案1】:

    当您通过 Artisan::call() 运行命令时,您并没有创建单独的进程。命令代码使用处理请求的相同进程执行并使用相同的 PHP 版本。通过 Artisan 外观调用它时,无法让它使用另一个 PHP 版本。

    为了使用不同的 PHP 版本,您需要在单独的进程中运行命令。为此,您可以使用 Symfony 的 Process 类 - 它与 Laravel 捆绑在一起,因此无需安装任何东西。

    这应该适合你:

    $process = new Process('/usr/bin/php55 artisan command:name');
    $process->run();
    

    【讨论】:

    • 我认为这将解决原始问题,但我在整个代码中发现了其他问题 - 我想我需要尝试将我的服务器 php 更新到 >=5.5,否则我将在所有地方都坚持修复。无论如何谢谢:)
    猜你喜欢
    • 2018-12-09
    • 2015-10-11
    • 1970-01-01
    • 2019-07-24
    • 2017-01-25
    • 1970-01-01
    • 2016-10-24
    • 2017-01-04
    • 2015-11-21
    相关资源
    最近更新 更多