1. 程式人生 > >laravel 服務提供者

laravel 服務提供者

config 最優 vid 動作 php 服務 fig 使用 就是

每一個框架都集成了無數人的精華,在現實中我們所使用工具的最優方式就是了解他的原理,只有了解了原理之後才能得心應手。下面簡述下自己的看法僅代表個人看法

laravel框架是我在實際工作中使用的比較頻繁的,而且現在的tp5.0個人認為其實就是laravel的復制版,laravel啟動分為以下幾步,一、創建服務容器實例,二、請求發送至內核(Http/Console),啟動內核在啟動內核時加載服務提供者

一、laravel采用的是單一的入口模式,所有的應用請求都是通過public/index.php文件,index.php文件載入了composer生成的自動加載機制,並以此進行依賴管理,所以laravel的請求通過public/index.php入口文件觸發到composer的加載機制,然後從 bootstrap/app.php

腳本獲取 Laravel 應用實例,由此完成第一個動作創建服務容器的實例,由此取得實例$app

二、啟動內核的重要動作之一就是加載服務提供者,所有的服務提供者都被配置在了config/app.php的providers的大數組中,在這裏我們同樣的可以配置自定義的類或者第三方的類庫,以服務提供者的方式進行加載,(這一步我的理解是聲明服務提供者的關系,也就是說該提供者是誰,在什麽位置),當我們想以此方式為自己的項目帶來便利的時候,就涉及到創建服務提供者

創建服務提供者,默認的服務提供者存放在app/providers文件價下,服務提供者可以自己命名但是該註意的命名空間、類關系等應當檢查是否存在問題,在服務提供者這中涉及兩個方法分別是register和boot方法具體含義可參考官方文檔,而register(則是將服務提供者註冊到服務容器),由此個人理解的順序為,框架由入口文件index.php出發composer自動加載機制,然後從bootstrap/app.php獲取laravel服務容器的實例,然後內核啟動加載服務提供者。

以下是我自己編寫的服務提供者

技術分享圖片

在config/app.php->providers數組中進行聲明如下

技術分享圖片

laravel 服務提供者