laravel 中repository模式使用詳解
什麼是Repository模式,laravel學院中用這樣一張圖來解釋
編碼過程當中 解耦一直是個較為熱門的話題。 使用MVC設計模式開發的時候,如果需要查詢數據庫/操作數據庫的時候就得直接引用模型,調用模型。按照常規的調用方法直接以下所示,不使用Eloquent ORM就沒法操作數據庫,那麼就是ORM和這個控制器有著非常之大的耦合性。
$position = Position::createPosition($params); $position->users()->attach($userParams); $position->permissions()->attach($permissionParams);
控制器方面應該是隻有返回相關的 不會包含任何邏輯的代碼,所以為瞭解耦我們就該引用repository設計模式。
repository 需要的開發層面
首先我們需要定義一個接口
<?php namespace App\Http\Repositories\Interfaces; use App\Http\Repositories\Interfaces\BaseRepositoryInterface; interface UserRepositoryInterface extends BaseRepositoryInterface { }
可以自己先構造一個基層的BaseInterface來封裝常用並且基本的操作模型的方法,創建好接口之後開始綁定repository來進行實現該接口
<?php namespace App\Http\Permission\Repositories\Eloquent; use App\Http\Repositories\Eloquent\EloquentBaseRepository; use App\Http\Permission\Repositories\Interfaces\UserRepositoryInterface; class UserRepository extends EloquentBaseRepository implements UserRepositoryInterface { }
創建好之後需要在ServiceProvider當中註冊並綁定該接口,保證與模型層有相關聯。
$this->app->bind(UserRepositoryInterface::class,function (){ return new UserRepository(new User); });
綁定好之後就可以創建service之後使用構造函數來將該interface註入到其中 就可以書寫邏輯以及相關編碼瞭。
到此這篇關於laravel repository模式使用的文章就介紹到這瞭,更多相關laravel repository模式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳解Laravel框架的依賴註入功能
- laravel多視圖共享數據實例代碼
- 詳解使用Spring Data repository進行數據層的訪問問題
- 如何為Repository添加自定義方法
- php+laravel 掃碼二維碼簽到功能