Eloquent自帶了一個(gè)轉(zhuǎn)換器encrypted class UserIdentity extends Model { protected $table = 'users_identity'; protected function casts(): array { return [ 'real_name' => 'encrypted', ...
webman的組件和第三方包還是不夠多,于是很多人會(huì)選擇用laravel寫后臺(tái),webman寫api的模式 但是這樣model和service可能就需要定義兩次,我有一個(gè)思路,webman的下一版本或者獨(dú)立出一個(gè)版本,目錄結(jié)構(gòu)完全兼容laravel11,可以獨(dú)立使用,也可以作為composer包引入laravel cli模式啟動(dòng)webman,fpm模式還可以跑laravel,這樣控制器和model就可以直接使用lar...
webman本身很省連接,一個(gè)進(jìn)程一個(gè)連接,也看過老大對(duì)連接池解釋的帖子,但是最近遇到一個(gè)場景,感覺業(yè)務(wù)量如果再加大,沒有連接池是不行了 業(yè)務(wù)場景如下: 原本開了4倍進(jìn)程,32*4,Mysql500個(gè)開連接,webman+fpm程序總共用不到200個(gè)連接,活躍連接1-3 最近新加了一個(gè)功能,我司用到一個(gè)第三方付費(fèi)接口,該接口在我司客戶端產(chǎn)品調(diào)用,但是該接口只有一個(gè)固定秘鑰字符串,沒有生成簽名之類的。 為了防止該付費(fèi)接...
同一個(gè)隊(duì)列 同一段代碼 直接echo也確定執(zhí)行了 但是在定時(shí)任務(wù)里面調(diào)用 \Webman\RedisQueue\Client::send() 就是不執(zhí)行...
騰訊云,websocket的安全組要怎么設(shè)置,GatewayWorker在線上跑不通 本機(jī)正常 服務(wù)器連接不上 ...
假設(shè)我每個(gè)請(qǐng)求響應(yīng)恒定33.33ms 每個(gè)進(jìn)程一秒可以處理33個(gè)請(qǐng)求 如果我開16個(gè)進(jìn)程 那不是代表我每秒最多只能處理528個(gè)請(qǐng)求 再多一個(gè)一個(gè)就會(huì)有等待時(shí)間 如果直接把進(jìn)程數(shù)再翻倍QPS最高值就是 1056 如果CPU占用不高,但是QPS已經(jīng)快到達(dá)理論值,在CPU負(fù)載良好的情況下 進(jìn)程數(shù)/CPU比例是否可以嘗試不斷提高...
translation 是共享的單例 只要一個(gè)用戶使用 locale() 函數(shù) 切換了語言,將導(dǎo)致整個(gè)網(wǎng)站的用戶都切換了語言 想要切換語言 只能每次輸出的時(shí)候 trans('hello', [], null, 'en'); 指定語言 而在FPM模式下,每次請(qǐng)求設(shè)定locale,設(shè)定locale后每次trans都使用locale設(shè)定的語言 下次請(qǐng)求需要讀取用戶設(shè)置的語言再次locale。locale本質(zhì)上對(duì)單次請(qǐng)求有...
想讓url中controller、action部分兼容兼容中劃線,中劃線更加符合SEO標(biāo)準(zhǔn)也更美觀 例如 /security/update-password 將訪問 securityController 控制器的 updatePassword 方法 每條都注冊(cè)路由麻煩 閱讀了一下代碼,在 框架核心App.php 類 getControllerAction方法添加如下代碼 $controller_class = st...
如題,單體應(yīng)用拆分成多個(gè)服務(wù),互相 RPC 調(diào)用,但是沒有服務(wù)注冊(cè)、熔斷、限流這些算微服務(wù)嗎? 在webman中,你有實(shí)現(xiàn)熔斷和限流的好方案,甚至是全套PHP微服務(wù)方案嗎...
打算寫一個(gè)webman的auth組件,參考Yii2的user組件 $auth = new \Webman\Auth\Auth(); $auth->isGuset(); $auth->login(); $auth->logout(); 功能沒有問題 ,但是每次都要new一下,在框架多個(gè)地方調(diào)用就要new多次實(shí)在不方便,于是做了一個(gè)單例 <?php namespace support; clas...
Route::fallback()是全局的 在group里也是全局的 我想攔截某個(gè)路由下的所有請(qǐng)求改怎么寫...
群主定義函數(shù)的時(shí)候是否可以先用function_exists檢查一下,希望能允許業(yè)務(wù)代碼覆蓋框架自帶的函數(shù),因?yàn)樽詭У挠胁糠趾瘮?shù)實(shí)在是....太丑了 /** * webman\config\log.php */ return [ ... 'constructor' => [ runtime_path() . '/logs/webman.log', .... ...
例如Laravel中各種組件使用facades DB::connect() Redis::connect() Request::input() Custom::method() ... Yii2中調(diào)用組件使用 Yii::$app->request Yii::$app->redis Yii::$app->custom ... 而在webman中沒有預(yù)定義定義這種方式 也沒有對(duì)插件開發(fā)者有什么要求,導(dǎo)致...
自動(dòng)路由面對(duì)復(fù)制的目錄結(jié)構(gòu)時(shí)無能為力 把路由寫在一個(gè)文件性能又不好,webman既然已經(jīng)常駐內(nèi)存了,不如最低版本要求提高到php8,加上注解路由,框架啟動(dòng)時(shí)讀取app目錄下的所有控制器,把注釋路由緩存起來,每次訪問都只需要讀取緩存,這樣寫業(yè)務(wù)的時(shí)候直接在方法上面的注解里設(shè)置路由、中間件這些玩意 不需要再去改路由文件之類的 <?php class TestController { #[ Method(...