分析 bootstrap 流程--Lumen 篇
與 Laravel 一樣,從進入點 index.php 開始看起。
與 Laravel 一樣,從進入點 index.php 開始看起。
與 Laravel 類似地,Lumen 也是被拆成 Lumen 與 Lumen Framework 兩部分。而 Lumen Framework 則是使用第一天提到的 Illuminate 套件實作出來的。
最近幾天會來研究一下 Lumen 怎麼使用 Laravel 抽離出來的套件,會使用 v5.7.6 版,從 src 目錄可以知道 Lumen Framework 客製化的套件庫樣貌:
tap() 之前有提過,是 helpers.php 的方法之一。
Higher Order Messages 是一個像魔法一般的功能。
來看看官方提供的範例:
先大概列幾個與原生 PHP 函式相關的方法。
| Native | Collection |
|---|---|
| array_chunk() | chunk() |
| array_combine() | combine() |
| array_diff() | diff() |
| array_flip() | flip() |
| array_filter() | filter() |
| array_map() | map() |
| array_reduce() | reduce() |
| array_slice() | slice() |
| array_walk() | each() |
通常 Collection 的實作,都有加強原生對 array 處理的方便性,這些就不多做說明,來提一些比較有趣的。
transform()這個方法跟 map() 其實是一樣的,但它會改變原本的物件的內容:
來看看 Collection 吧!
Laravel 用來處理 array 的小幫手,至今已知道有三種類型:第一種就是 [helpers.php][] 所提供的函式,第二種則是 Arr 類別所提供的靜態方法,今天要講的是第三種--Collection。
這三種方法之間都有類似的處理方法。不過,我們先來看 Collection 哪些方法跟原生 PHP 提供的函式很像,如 array_map() 函式與 Collection::map() 方法:
這三個都是 Laravel 所提供的 helpers 函式。剛好今天聽到有人提到這個問題,所以就來翻看看。
單就註解與介面來看這三個函式:
不同公司所制定的系統環境規範都有所不同。
比方說環境變數的設定,敝公司的規範如下:
/etc/environment,而是使用檔案載入/path/to/.env上述會有幾個要點要注意:
/path/to/project/.env,而上面的規範,還會多載 /path/to/.env.env 開發人員不能隨意覆蓋最一開始,使用最蠢的 workaround,直接修改 bootstrap/app.php:
續昨天,先來列一下 Http Kernel 預設有哪些 middleware: