PHPackages                             mitoop/ace - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mitoop/ace

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mitoop/ace
==========

Support multiple PHP versions in macOS

v2.0.0(10mo ago)347[1 issues](https://github.com/mitoop/ace/issues)MITPHPPHP ^7.1|^8.0

Since Dec 23Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/mitoop/ace)[ Packagist](https://packagist.org/packages/mitoop/ace)[ RSS](/packages/mitoop-ace/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependenciesVersions (11)Used By (0)

Ace
===

[](#ace)

🥇 macOS 下优雅管理多版本 PHP 的命令行工具

---

简介
--

[](#简介)

**Ace** 是一款 macOS 平台下的 PHP 多版本切换工具，灵感来自优秀的 `laravel/valet`。

如果你本地安装了多个版本的 PHP，并希望在不同项目中使用不同版本，**Ace** 将是你不可或缺的工具。

只需在项目根目录下运行：

```
ace
# 或者
ace php
```

Ace 会自动为当前项目匹配最合适的 PHP 版本，无需手动切换。

---

快速命令参考
------

[](#快速命令参考)

```
ace                 # 等同于 ace php
ace php             # 使用项目对应 PHP 版本运行
ace composer        # 使用匹配的 PHP 版本执行 composer
ace pecl            # 使用匹配的 PHP 版本执行 pecl
ace artisan         # 执行 Laravel 命令
ace clear           # 清除缓存
ace hello           # 打印 Hello Ace!

# 示例用法
ace -v                      # 查看当前使用的 PHP 版本
ace php -v                 # 同上
ace artisan migrate        # 执行 Laravel 数据迁移
ace composer install       # 安装依赖
ace pecl install redis     # 安装扩展
```

---

版本匹配逻辑
------

[](#版本匹配逻辑)

Ace 会按照以下优先级查找项目所需 PHP 版本：

1. 当前目录中的 `ace.json`
2. 当前目录中的 `composer.json`
3. 系统环境变量中的默认 PHP 版本

例如：`ace.json` 文件示例

```
{
  "php": "^7.4.0"
}
```

支持语义化版本约束，详见

---

安装方式
----

[](#安装方式)

```
# 安装
composer global require mitoop/ace

# 升级（先移除旧版本）
composer global remove mitoop/ace
composer global require mitoop/ace
```

---

注意事项
----

[](#注意事项)

1. 支持的 PHP 版本为 `>= 7.1`
2. 若版本约束为 `^7.1`，且本地存在 `php@7.1`, `php@7.2`, `php@7.3`, `php@7.4`, `php@8.0` 等版本，Ace 会选择 **最高的 `php@7.x`**，即 `php@7.4`
3. 若需固定版本，请在项目中创建 `ace.json` 并指定版本
4. 首次运行会缓存所有已安装的 PHP 版本，加快后续执行速度。新增/移除 PHP 后请运行 `ace clear` 清除缓存
5. 多版本 PHP 同时启用时，需注意 `php-fpm` 的监听端口冲突。建议使用不同端口，或通过 unix socket 方式运行
6. 推荐使用 [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php) 安装旧版本 PHP
7. 多版本 PHP 安装相同扩展（如 `redis`）时可能冲突。可在对应版本下先卸载再安装
8. Composer 高版本对 PHP 有最低要求，例如： ```
    Composer 2.3.0 dropped support for PHP
