hyperf/docs/zh-cn/eco/box.md
2023-01-09 08:06:39 +08:00

89 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# box, by Hyperf
Box 致力于帮助提升 PHP 应用程序的编程体验,尤其有助于 Hyperf 应用,管理 PHP 环境和相关依赖,同时提供将 PHP 应用程序打包为二进制程序的能力,还提供反向代理服务来管理和部署 Swoole/Swow 服务。
### 使用
#### 安装 box
##### Mac
```bash
wget https://github.com/hyperf/box/releases/download/v0.5.5/box_x86_64_macos -O box
sudo mv ./box /usr/local/bin/box
sudo chmod 755 /usr/local/bin/box
// 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
```
##### Linux x86_64
```bash
wget https://github.com/hyperf/box/releases/download/v0.5.5/box_x86_64_linux -O box
sudo mv ./box /usr/local/bin/box
sudo chmod 755 /usr/local/bin/box
// 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
```
##### Linux aarch64
目前我们缺少 AARCH64 Github Actions Runner所以无法及时构建 AARCH64 版本的 bin 文件。
```bash
wget https://github.com/hyperf/box/releases/download/v0.0.3/box_php8.1_aarch64_linux -O box
sudo mv ./box /usr/local/bin/box
sudo chmod 755 /usr/local/bin/box
// 确保 /usr/local/bin/box 在你的 $PATH 环境中,或者将 `box` 放到你想要的任意 $PATH 路径中
```
##### Windows
```powershell
curl -o box.exe https://github.com/hyperf/box/releases/download/v0.5.5/box_x64_windows.exe
// `box.exe` 放到你想要的任意 Path 环境变量路径中同时 Windows 版本在执行时需要在命令行中使用 `box.exe` 而不是 `box`
```
#### 初始化 Github Access Token
Box 需要一个 Github 访问令牌来请求 Github API以检索包的版本。
1. [创建 Github Access Token](https://github.com/settings/tokens/new)`workflow` 范围需要勾选;
2. 运行 `box config set github.access-token <Your Token>` 命令来设置您的 token
3. 玩得开心 ~
#### 设置 Box Kernel
默认情况下Box 由 Swow Kernel 提供支持,但是我们也提供了 Swoole Kernel您可以通过 `box config set kernel swoole` 来切换为 Swoole Kernel但是需要注意的是Swoole Kernel 仅支持 PHP 8.1 版本,且不支持构建二进制程序功能和 Windows 系统环境。
```bash
// 设置为 Swow Kernel [默认]
box config set kernel swow
// 设置为 Swoole Kernel (不支持 Windows)
box config set kernel swoole
```
### 命令
- `box get pkg@version`从远程安装包,`pkg`是包名,`version`是包的版本,`box get pkg`表示安装最新版本的 pkg例如, 运行 `box get php@8.1` 安装 PHP 8.1, 运行 `box get composer` 安装最新的 composer bin
- `box build-prepare``build``build-self` 命令做好相关环境的准备
- `box build-self` 构建 `box` bin 本身
- `box build <path>` 将 Hyperf 应用程序构建成二进制文件
- `box self-update``box` bin 更新至最新版本
- `box config list` 输出 box 配置文件的所有内容
- `box config get <key>` 从配置文件中按键检索值
- `box config set <key> <value>`通过 key 设置 value 到配置文件中
- `box config unset <key>`按 key 删除配置值
- `box config set-php-version <version>`设置 box 的当前 PHP 版本可用值8.0 | 8.1
- `box config get-php-version <version>`获取 box 的当前设置的 PHP 版本
- `box reverse-proxy -u <upsteamHost:upstreamPort>` 启动一个反向代理 HTTP 服务器,用于将 HTTP 请求转发到指定的多个上游服务器
- `box php <argument>` 通过当前 box 的 PHP 版本运行任何 PHP 命令
- `box composer <argument>`通过当前 box 的 PHP 版本运行任何 Composer 命令composer bin 的版本取决于最后执行的 `get composer` 命令
- `box php-cs-fixer <argument>` 通过当前 box 的 PHP 版本运行任何 `php-cs-fixer` 命令composer bin 的版本取决于最后执行的 `get php-cs-fixer` 命令
- `box cs-fix <argument>` 通过当前 box 的 PHP 版本运行 `php-cs-fixer fix` 命令composer bin 的版本取决于最后执行的 `get php-cs-fixer` 命令
- `box phpstan <argument>` 通过当前 box 的 PHP 版本运行任何 `phpstan` 命令composer bin 的版本取决于最后执行的 `get phpstan` 命令,此命令仅在 box v0.3.0 及以上的版本中可用
- `box pint <argument>` 通过当前 box 的 PHP 版本运行任何 `pint` 命令composer bin 的版本取决于最后执行的 `get pint` 命令,此命令仅在 box v0.3.0 及以上的版本中可用
- `box version` 输出当前 box bin 的版本号
### 关于 Swow-Skeleton
希望体验 Box 完整功能的朋友,需要通过 Swow Kernel 来运行,因此您需要基于 [hyperf/swow-skeleton](https://github.com/hyperf/swow-skeleton) 来运行您的项目,可通过 `box composer create-project hyperf/swow-skeleton` 命令来创建一个基于 Hyperf 3.0 版的 Swow 骨架项目。