我試圖通過一個額外的方法擴展Laravel的Auth Guard類,所以我最後可以調用Auth::myCustomMethod()
。如何擴展Laravel的Auth Guard類?
繼文檔部分Extending The Framework我被困在如何完全做到這一點,因爲Guard類本身沒有自己的IoC binding,我可以重寫。
下面是一些代碼展示了我想要做的事:
namespace Foobar\Extensions\Auth;
class Guard extends \Illuminate\Auth\Guard {
public function myCustomMethod()
{
// ...
}
}
現在我應該怎麼註冊擴展的類Foobar\Extensions\Auth\Guard
用於代替原來的Illuminate\Auth\Guard
的,所以我能夠調用Auth::myCustomMethod()
的與例如相同的方式Auth::check()
?
一種方法是替換app/config/app.php
中的Auth
別名,但我不確定這是否是解決此問題的最佳方法。
順便說一句:我正在使用Laravel 4.1。
Thanks f或者你的答案大衛!我希望有一個比創建自己的UserProvider來擴展Guard類更簡單的方法。我會等一段時間看看是否有其他建議。 –
@HolgerWeis我已經添加了一個簡單的方法來擴展Auth與當前Eloquent驅動程序的擴展名。 「Auth :: extend」代碼應該按原樣工作。 –