hyperf/docs/zh-hk/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 骨架項目。