laravel 服務提供者
每一個框架都集成了無數人的精華,在現實中我們所使用工具的最優方式就是了解他的原理,只有了解了原理之後才能得心應手。下面簡述下自己的看法僅代表個人看法
laravel框架是我在實際工作中使用的比較頻繁的,而且現在的tp5.0個人認為其實就是laravel的復制版,laravel啟動分為以下幾步,一、創建服務容器實例,二、請求發送至內核(Http/Console),啟動內核在啟動內核時加載服務提供者
一、laravel采用的是單一的入口模式,所有的應用請求都是通過public/index.php文件,index.php文件載入了composer生成的自動加載機制,並以此進行依賴管理,所以laravel的請求通過public/index.php入口文件觸發到composer的加載機制,然後從 bootstrap/app.php
二、啟動內核的重要動作之一就是加載服務提供者,所有的服務提供者都被配置在了config/app.php的providers的大數組中,在這裏我們同樣的可以配置自定義的類或者第三方的類庫,以服務提供者的方式進行加載,(這一步我的理解是聲明服務提供者的關系,也就是說該提供者是誰,在什麽位置),當我們想以此方式為自己的項目帶來便利的時候,就涉及到創建服務提供者
創建服務提供者,默認的服務提供者存放在app/providers文件價下,服務提供者可以自己命名但是該註意的命名空間、類關系等應當檢查是否存在問題,在服務提供者這中涉及兩個方法分別是register和boot方法具體含義可參考官方文檔,而register(則是將服務提供者註冊到服務容器),由此個人理解的順序為,框架由入口文件index.php出發composer自動加載機制,然後從bootstrap/app.php獲取laravel服務容器的實例,然後內核啟動加載服務提供者。
以下是我自己編寫的服務提供者
在config/app.php->providers數組中進行聲明如下
laravel 服務提供者