【问题标题】:Build system of Sublime Text 3 executes a different version of PHPSublime Text 3 的构建系统执行不同版本的 PHP
【发布时间】:2016-10-12 15:31:49
【问题描述】:

我在 OSX 上使用 SublimeText3。问题是:

  • 如果我在 SublimeText3 上执行 PHP 脚本,那么它由 PHP 5.5 执行。
  • 但如果我从 shell (iTerm) 执行相同的脚本,那么它会由 PHP 7 执行。

如何在 SublimeText3 上使用 PHP7 执行脚本?

构建系统如下。

{
    "cmd" : ["php", "$file"],
    "file_regex": "php$",
    "selector"  : "source.php"
}

而 PHP 脚本只是:

<?php
phpinfo();
?>

【问题讨论】:

  • 在 OSX 下,像 Sublime 这样的 GUI 应用程序看到的路径和终端看到的路径不一定相同,因此终端可能会找到不同的 php 可执行文件。您可以在构建系统中指定一个路径,或者在构建系统正在执行的 php 上放置一个显式路径,以确保它选择正确的路径。

标签: php macos sublimetext3


【解决方案1】:

指定命令的绝对路径 (cmd)。

假设$file/path/to/file,那么命令['php', "$file"] 扩展为php /path/to/file。这就像在命令行上运行以下命令:

$ php /path/to/file

因为命令(php)是相对的,所以搜索系统路径(在linux上系统路径在环境变量PATH中)找到php

您可以为命令指定绝对路径。假设您安装了以下版本:

  • /path/to/php/versions/7.0.0/bin/php
  • /path/to/php/versions/5.5.0/bin/php

然后你可以配置一个命令使用v7.0.0:

{
    "cmd" : ["/path/to/php/versions/7.0.0/bin/php", "$file"],
    "file_regex": "php$",
    "selector"  : "source.php"
}

和 v5.5.0:

{
    "cmd" : ["/path/to/php/versions/5.5.0/bin/php", "$file"],
    "file_regex": "php$",
    "selector"  : "source.php"
}

等等……

进一步阅读

【讨论】:

    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2013-10-14
    • 2014-01-17
    • 2018-04-27
    相关资源
    最近更新 更多