發表文章

那些值得裝裝看的酷酷 CLI 工具

圖片
好久沒寫部落格文了,是時候該振作提起鍵盤寫一寫。 這篇的起因其實是我裝了這些 CLI tool 但都忘記用 😅 現代 CLI 類 bat 取代 cat 的工具,包含了語法 Highlight 和 Git 狀態顯示,顯示文件真的可以又快又漂亮,基於 rust。 其實平常也不常用 cat 啦,還是習慣用 less ,搭配 source-highlight 也能有一定程度的 Highlight(但也就堪用而已,最後還是打開 vim)。 httpie 與其說是現代版的 Curl/Wget,我覺得講 CLI 版的 Postman 會更貼切些。支援 JSON 和 HTML 的語法 Highlight 當然是基本的,還能方便地傳出 JSON API 或 Form data 也是一大賣點。基於 Python。 今年他們也因為掉星星事件有一陣子熱度( How we lost 54k GitHub stars – HTTPie blog ),喜歡的話別忘了幫他們加個星星。 exa 現代版 ls。很多漂亮的顏色就是棒,另外還能顯示圖示、Git 狀態,以及提供樹狀顯示等等。基於 rust。 不知道為什麼我的 exa 看起來顏色醜醜的,可能沒有正確吃到 zsh 的設定。 延伸閱讀: 11 - exa - 總覽目錄的工具 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 ripgrep 取代 grep 的強化版文字搜尋工具,當然也是可以取代 ag、ack。有很多進階功能,例如支援 regex、尊重 ignore 設定、能指定搜尋檔案的範圍或類型等。使用的語法為 rg ,基於 rust。 延伸閱讀: 09 - ripgrep - 快速查找檔案內容 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 fd 取代 find,協助你快速找到檔案。一樣是快、漂亮的顏色、支援 Regex、尊重 ignore 設定。基於 rust。 神奇工具類 tig 反過來打的 Git,可以在 CLI 看 git 線圖,有人說是 CLI 中的 Git GUI(? hub GitHub 官方 CLI 工具。 tldr 社群維護的各種 CLI 工具的常用語法範例。真的很棒很好用。 shellcheck She

[延伸創作] 深入 Session 與 Cookie:Laravel 的實作

圖片
前言 看到 Huli 寫了這篇 深入 Session 與 Cookie:Express、PHP 與 Rails 的實作 ,想說既然都寫到了 PHP 和 Rails 了, 身為 PHP 版 Rails 的 Laravel 怎麼可以缺席呢 (?),所以就也來追追看原始碼吧! 原本想在短時間內就把這篇發出去的,趁著風潮嘛。 結果 Laravel 原始碼果然很難追,Laravel 5.8 版原始碼追著追著 Laravel 6.x 就推出了,擺著擺著 7.x 版又… 🤦‍♂️,就這樣過了八個多月,看來有得改了,還好差異不大。 那我們就開始吧! TL;DR 可以直接滑最後看結論 😭 前言 TL;DR 本篇閱讀指南 Laravel Framework(以 v7.9.2 版為例) Laravel 怎麼生成 Session ID 的 「重新生成 Session ID」 建立 Session ID Laravel 並不是使用 PHP 原生的 session 機制 將 Session Information 寫進 File 從 Laravel 儲存 Session 的指令下手 Driver:儲存 Session 的管道 Session 的 Service Provider StartSession 是個 Middleware saveSession():儲存 Session 資料 SessionManager Manager::driver():取得 Driver Instance createFileDriver():建立 File Session Driver 的 Instance buildSession(): 建立 Session Instance Store:Session Instance 本體 return 再 return:回到 saveSession() save(): 儲存 Session 資料到指定儲存空間(File) write():寫入 Session 資料到 File 分岔一下,來講 File Facade 回來 write():繼續寫入 Session 資料到 File put():把內容寫入檔案 延伸討論:說好的 cookie-based session 呢 cr