每乙個facade 對應乙個服務提供者類。如何從facade 解析出該類呢?
以
illuminate\support\為例。該類內容如下,只有乙個方法facades\route
class檢視基類facade中有乙個魔術方法,通過呼叫魔術方法來解析真正呼叫的類。如下route
extends
facade
}
public static function於是檢視getfacaderoot 函式__callstatic
($method
, $args
)return
$instance
->
$method
(...
$args);
}
public static function其中getfacaderoot
()
這個地方比較迷惑了。因為基類中也有了getfacadeaccessor函式,到底是呼叫子類的方法,還是該類自己的方法。於是引出另乙個問題static 與self 的區別static
::getfacadeaccessor
()
經**發現static 呼叫的是子類中的方法(如果子類中含有與父類中相同的方法),self 呼叫的是本類中的方法。於是**變成
然後檢視這個函式resolvefacadeinstance,發現第一次呼叫類是從繫結的類中獲取,第二次從解析過的靜態變數中獲取。return static
::resolvefacadeinstance('
router')
;
protected static function所以呼叫facade介面中的方法,其實是呼叫繫結類的方法。resolvefacadeinstance
($name
)if
(isset
(static
::$resolvedinstance
[$name
]))
return static
::$resolvedinstance
[$name
] =
static::[
$name];
}
laravel中郵件的傳送以及model的使用
一 修改config裡面的mail.php 只需要修改一處 from address 163.com name 誰發的 二 修改.env檔案 mail driver smtp mail host smtp.163.com mail port 25 mail username 163.com mail...
laravel在終端中檢視日誌的方法
原文 php artisan tail命令可用來檢視實時的程式執行 log,在 debug 模式關閉的情況下 如 生產環境 尤其有用.預設情況下 tail 只是針對本地的 php artisan tail開發的時候,還可以開啟 sql 查詢語句的 log,配合php artisan tail一起使用...
laravel在終端中檢視日誌的方法
原文 php artisan tail命令可用來檢視實時的程式執行 log,在 debug 模式關閉的情況下 如 生產環境 尤其有用.預設情況下 tail 只是針對本地的 php artisan tail開發的時候,還可以開啟 sql 查詢語句的 log,配合php artisan tail一起使用...