博客 / 列表

big_cat - curl 命令行 url 中傳遞中文參數的方法

當我們在命令行中使用 curl 請求某些 url 時,如果參數中包含了中文,則需要對其進行 urlencode 編碼,才能正常的傳遞到服務端,之前一直先轉碼再 curl,後來發現其自帶了編碼選項 --data-urlencode,如下: curl \ -G https://www.yoursite.com/search \ --data-urlencode 'wd=我的' 即可正常發送中文參數至服

中文亂碼 , curl

big_cat - curl routines:connect_cr_srvr_hello:tlsv1 alert protocol version

curl error:1400442e:ssl routines:connect_cr_srvr_hello:tlsv1 alert protocol version Run the following: export HOMEBREW_FORCE_BREWED_CURL=1 # check that the Curl: entry now points to Homebrew curl brew

ssl , tls , homebrew , curl

big_cat - docker 構建本地 php-cli 環境安裝 composer 依賴

有時我們只需是需要使用 php-cli 去安裝一些 composer 依賴,然而在本地安裝 php 耗時費力,在一些老系統上還會有各種版本限制,比如我的 MacOS11 因為不被 asciidoc 支持(特麼的,MacOS12也不被支持...),導致無法成功安裝。 所以轉為 docker 容器變相實現,掛載項目工作目錄到容器的工作目錄上,在容器中的環境下,安裝依賴。 cd your_project

composer , php , Docker

big_cat - composer 版本號表達式:^ / ~ / *

版本號規則 主版本號.次版本號.修訂號 ^ 表示除主版本號,其他段都可以變 "php": "^7.3|^8.0" 表示 7.3 = 版本號 8.0 或 8.0 = 版本號 9.0 "php": "=7.3,8.0" 表示 7.3 = 版本號 8.0 ~ 下一個主要版本段 "mockery/mockery": "~1.3" 表示 1.3 = 版本號 2.0 "mockery/mockery"

composer , 版本 , composer-php

big_cat - laravel 小技巧:為日誌組件的非默認通道註冊全局上下文 context

在使用 laravel 的日誌組件(Facade門面模式)時,我們可以通過 withContext 方法為請求週期註冊全局的上下文信息,用來做 RequestID/TraceId 類的請求鏈路追蹤,非常的方便。但在 10- 以下的版本中,withContext 只能為默認日誌通道注入全局上下文,在非默認通道的場景,比如 cli 下, 就無法優雅的實現了。 但如果你瞭解 Service,Servic

trace , laravel , 日誌 , context

big_cat - laravel-octane(frankenphp) 體驗及性能壓測

今天做一篇 laravel-octane 以 frankenphp 作為服務引擎的體驗及性能壓測。硬件配置與前2篇的相同,環境為 php8.3 + laraval12 + mysql8.4(版本不必太在意,=php8, =laravel8, =mysql7 區別都不大)。 測試基礎硬件 先説結果,非常ok:cpu 密集型 場景最優 3.5k 的qps;io 密集型 場景最優 2k 的 qp

php , laravel

big_cat - Dcat Admin 為模型生成器追加屬性註解

Dcat Admin 自帶了 Model 模型生成器,但生成的類中並沒有表字段對應的 @property 屬性註解,這裏對源碼做了一些修改和完善,增加了對應字段的註解。 NOTICE: 僅限使用數據庫中已存在的表生成模型類的場景,如果是通過面板創建新表則不能(兼容起來太麻煩了) 需要修改或配置如下3文件 1. 模型類模版 src/Scaffold/stubs/model.stub ?php

admin , laravel

big_cat - docker 構建 lnmp 環境

使用 docker-compose 編排的一套 lnmp 環境,並補充了 nginx / php / mysql / redis 的配置文件,補充了 php 的常用擴展。給到了 fpm / swoole 的部署、運行示例。可以方便大家快速搭建開發、生產環境、學習 docker 技能(涉及了鏡像打包、Entrypoint、yml 高大上的寫法 extends 引用)。 github 完整示例:do

lnmp , Docker

big_cat - php 打包 zip

php 使用原生的 ZipArchive 類來打包 zip。 ?php namespace App\Services; use Exception; use Illuminate\Support\Facades\Log; /** * Class Zip * * @package App\Services */ class Zip { /** * @param ar

php , 打包 , zip

big_cat - error:14090086:SSL routines:ssl3_get_server_certificate

SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed ph

php , openssl

big_cat - golint 安裝與使用

golint 可以對 go 源碼進行靜態編碼檢查,保證團隊代碼風格統一及編碼規範。 golint 安裝 傳統又穩妥的安裝方式 git clone https://github.com/golang/lint.git cd lint/golint go install # 可以看到 golint 可執行文件 ll $GOBIN 可以看到 $GOBIN 下已經有 golint golint 配置 以

規範化 , 代碼檢查 , go

big_cat - supervisor 指定 python 版本及配置示例

pkg_resources.DistributionNotFound: The 'supervisor==3.4.0' distribution was not found and is required by the application 有時系統安裝了 python3 和 python2,且 python3 為默認版本,安裝啓動 supervisor 時就報錯了。 yum install s

supervisor

big_cat - Laravel Eloquent where 查詢條件的解析器增強版

個人感覺 Eloquent ORM 的 where 條件解析場景並不是那麼的豐富,很多條件的拼裝都需要引入額外的 orWhere, whereNotIn, whereBetween, whereNotBetween 來輔助完成。這樣在做一些抽象的底層查詢方法時,不是很友好,上層傳遞的查詢條件是不確定的,如果能靈活的解析各種混合式的查詢條件(用數組的方式描述),使用起來會更高效靈活些。 /** *

where , orm , laravel , eloquent

big_cat - mysql 遷移至 8.0 時的注意事項

密碼模式 PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] mysql8 之後,默認的密碼模式改為 caching_sha2_password,新的模式需要新的驅動,至少現在 pdo / navicat 還沒給出,所以我們還是得切換

mysql8 , pdo , php , 兼容性

big_cat - mapState / mapMutations 的使用方法

Vue 引入 Vuex // store/index.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) const store = new Vuex.Store({ // 模塊 modules: { user: { state: {

vuex , vux