brew 安装任意版本 PHP(7.3、7.4、8.0、8.1、8.2、8.3) 作者: Chuwen 时间: 2023-09-19 分类: Linux 评论 ## 依赖 * [brew](https://brew.sh/ "brew") ## 安装 首先添加 `shivammathur/php` 仓库源: ```shell brew tap shivammathur/php ``` 搜索可安装的 PHP 版本 `brew search shivammathur/php` ```shell shine@shine:~/work/xxxxx-web$ brew search shivammathur/php ==> Formulae shivammathur/php/php shivammathur/php/php@7.0-debug shivammathur/php/php@7.3 shivammathur/php/php@8.0-debug shivammathur/php/php@8.4 shivammathur/php/php-debug shivammathur/php/php@7.1 shivammathur/php/php@7.3-debug shivammathur/php/php@8.1 shivammathur/php/php@8.4-debug shivammathur/php/php@5.6 shivammathur/php/php@7.1-debug shivammathur/php/php@7.4 shivammathur/php/php@8.1-debug shivammathur/php/php@5.6-debug shivammathur/php/php@7.2 shivammathur/php/php@7.4-debug shivammathur/php/php@8.3 shivammathur/php/php@7.0 shivammathur/php/php@7.2-debug shivammathur/php/php@8.0 shivammathur/php/php@8.3-debug ``` 比如你要这些 PHP 版本就这样操作: * PHP 8.1:`brew install shivammathur/php/php@8.1` * PHP 8.2:`brew install shivammathur/php/php@8.2` * PHP 8.3:`brew install shivammathur/php/php@8.3`
macOS PHP 使用 Pecl 安装 Swoole 扩展并启用 openssl 作者: Chuwen 时间: 2023-08-26 分类: PHP 评论 ## 安装 PHP 可以参照此教程安装:https://stitcher.io/blog/php-82-upgrade-mac#upgrade-with-shivammathur/homebrew-php 为了节约时间,我摘抄部分 ```shell brew tap shivammathur/php brew install shivammathur/php/php@8.2 # 切换至 PHP 8.2 brew link --overwrite --force php@8.2 ``` ## 安装 openssl & 获取安装路径 如果你没有安装,可以使用此命令进行安装 ```shell brew install openssl ``` ![](https://cdn.nowtime.cc/2023/08/26/4241934229.png) 比如我的就是 `/usr/local/Cellar/openssl@3/3.1.2` 这个路径,请记住这个路径 ## 安装 swoole 扩展 & 启用 openssl 支持 > 确保你的网络环境正常 执行以下命令 ```shell sudo pecl install swoole ``` 当询问你是否启用 openssl 是,你就输入 `yes --with-openssl-dir=/usr/local/Cellar/openssl@3/3.1.2` > 其中 `/usr/local/Cellar/openssl@3/3.1.2` 是 openssl 的安装路径 ![](https://cdn.nowtime.cc/2023/08/26/3703705991.png) 其他的按照自己需求填入 `yes` OR `no` 就好了,不过需要注意可能需要指定相关库的路径,详情请查看[官方文档 -> 编译选项 -> 通用参数](https://wiki.swoole.com/#/environment?id=%e9%80%9a%e7%94%a8%e5%8f%82%e6%95%b0 "官方文档") ## 安装完成 ![](https://cdn.nowtime.cc/2023/08/26/3470978648.png) 检查是否安装成功,执行命令 `php --ri swoole`,如果有内容输出(如图)表示安装成功 ![](https://cdn.nowtime.cc/2023/08/26/3318436440.png)
Laravel `Http::withUrlParameters` 用法 作者: Chuwen 时间: 2023-07-18 分类: Laravel,PHP 评论 ## 使用前 在调用 HTTP API 时会发现有很多 API 都是采用 *REST API* 风格,例如: * /admin/api/2023-07/products/{product_id}.json * /admin/api/2023-01/orders/{order_id}.json * /admin/api/2023-01/orders/{order_id}/fulfillments/{fulfillment_id}.json * ... 不难发现它们都有一个共同点,以花括号(`{var_name}`、`{order_id}`)包裹的变量替换为对应的值,通常我们可能会这么做: ```php $http = \Illuminate\Support\Facades\Http::baseUrl('https://example.com'); $order_id = 123456789; $fulfillment_id = 9889894445; $orderUrl = sprintf('/admin/api/2023-07/orders/%d.json', $product_id); $fulfillmentUrl = sprintf('/admin/api/2023-01/orders/%d/fulfillments/%d.json', $order_id, $fulfillment_id); $order = $http->get($orderUrl); $fulfillment = $http->get($fulfillmentUrl); ``` 但是会发现这样拼接 URI 会很繁琐 ## 使用后 - `Http::withUrlParameters` ```php $http = \Illuminate\Support\Facades\Http::baseUrl('https://example.com') ->withUrlParameters([ 'order_id' => 123456789, 'fulfillment_id' => 9889894445 ]); // 比如你要使用上述定义 URL 参数:order_id // 你在 URL 只需要填 {order_id} // 在请求时会自动替换 $orderUrl = '/admin/api/2023-07/orders/{order_id}.json'; $fulfillmentUrl = '/admin/api/2023-01/orders/{orders_id}/fulfillments/{fulfillment_id}.json'; $order = $http->get($orderUrl); $fulfillment = $http->get($fulfillmentUrl); ``` 会发现使用会很方便,不需要再使用如 `sprintf` 去拼接 URL 了
解决运行 php 命令出错:dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.72.dylib 作者: Chuwen 时间: 2023-07-07 分类: 编程工具 评论 ## 解决办法 重新安装 `icu4c` 即可 ```shell brew reinstall icu4c ``` --- 解决方案来源:https://gist.github.com/berkedel/d1fc6d13651c16002f64653096d1fded?permalink_comment_id=3676196#gistcomment-3676196
PHPStorm 命令行工具支持 - 添加 hyperf 命令 作者: Chuwen 时间: 2023-07-07 分类: 神奇技巧 评论 ## 操作步骤 1. 打开 PHPStorm 设置 2. 选择 **Tools | Command Line Tool Support**(工具) 3. 再选择 **Command Line Tools**(命令行工具支持) 4. 点击 “+” 添加 ![](https://cdn.nowtime.cc/2023/07/07/3007301678.png) 5. 按照如图所示选择 ![](https://cdn.nowtime.cc/2023/07/07/2083503232.png) 6. 工具设置 * **别名** 可按照自己需求输入比如 `hyperf`、`h`,这里我为了方便选择 `h` 作为别名 * **脚本路径** 输入 hyperf 脚本的相对路径 `bin/hyperf.php` ![](https://cdn.nowtime.cc/2023/07/07/3110325419.png) 7. 最点击确定、应用设置即可 ![](https://cdn.nowtime.cc/2023/07/07/211859290.png) ## 使用 1. 双击 Ctrl 键唤出“运行任何内容”窗口 ![双击 Ctrl 键唤出“运行任何内容”窗口](https://cdn.nowtime.cc/2023/07/07/3703838478.png) 2. 输入相关命令如 `h d`,然后就会进行命令联想 ![](https://cdn.nowtime.cc/2023/07/07/2930141368.png) 3. 选定一个命令,按回车运行 ![](https://cdn.nowtime.cc/2023/07/07/3925011794.png)