Repository pattern là gì

     
Mlàm việc đầu

Laravel là một PHP framework, có mã nguồn msinh hoạt với miễn giá thành, được thi công nhằm mục tiêu cung ứng và cách tân và phát triển các ứng dụng, vận dụng, theo phong cách thiết kế MVC. Lúc bấy giờ, Laravel sẽ là PHPhường framework phổ biến duy nhất và cực tốt.trong những bí quyết phổ cập độc nhất vô nhị nhằm phát hành một áp dụng sử dụng Laravel là Repository Pattern.Thứ nhất, nhằm hoàn toàn có thể thực hiện được Repository Pattern trong Laravel họ cần phải hiểu được Repository Pattern là gì với tác dụng Lúc sử dụng nó.Bạn sẽ xem: Repository pattern là gì

Repository Pattern là gì?Lợi ích của Việc áp dụng Repository Patterntập trung cố gắng hóa xúc tích truy vấn tài liệu giúp code dễ dàng duy trì hơnLogic tróc nã vấn dữ liệu và lô ghích code rất có thể được tách biệtGiảm sự đụng hàng codeHạn chế lỗi trong truy nã vấnDễ dàng triển khai test

thường thì khi không sử dụng Repository, code đã như vậy này

class UsersController extends Controller private $userRepository; public function __construct(UserRepositoryInterface $userRepository) $this->userRepository = $userRepository; public function index() $users = $this->userRepository->all(); return view("users.index", $users >); Đoạn code này vẫn đúng. Tuy nhiên, bao gồm một vụ việc bắt buộc để ý ở chỗ này chính là Controller được đính chặt vào Model dùng để tiến hành những thao tác làm việc với Thương hiệu tài liệu. Điều này gây nên 2 vụ việc rất lớn nhỏng sau:

Chúng ta quan trọng viết Test mang lại ControllerController lắp chặt cùng với ORM Layer, trường hợp gồm có chuyển đổi về cầu trúc bảng, xuất xắc thực hiện chiến thuật làm sao đó tái cấu tạo, họ vẫn gặp gỡ khó khăn trong Việc đề nghị kiếm tìm lại tổng thể các controller cùng sửa

Đó chính là lí bởi vì họ phải thực hiện Repository vào ngôi trường hòa hợp này. Chúng ta sẽ xây dựng dựng một tấm trung gian thân Controller và Model, nạm bởi vì bài toán Controller tác động trực tiếp với Model, Controller đã thao tác làm việc cùng với Repository đã có được đóng gói cùng các thao tác trong Model. Với bất kì sự chuyển đổi như thế nào tương quan đến Model, họ chỉ việc search cùng sửa lại Repository.Chúng ta đã viết lại code nlỗi sau:

class UsersController extends Controller private $userRepository; public function __construct(UserRepositoryInterface $userRepository) $this->userRepository = $userRepository; public function index() $users = $this->userRepository->all(); return view("users.index", $users >); Sử dụng Repository vào LaravelSau khi tìm hiểu về những tác dụng của Repository, hiện nay chúng ta hãy cùng xúc tiến Repository trong Laravel.

Cách 1: Tạo một Repository Interface

Tạo một folder bên phía trong folder app khắc tên là Contracts, tiếp đến chế tạo thư mục Repositories theo cấu trúc sau




Bạn đang xem: Repository pattern là gì

*



Xem thêm: Cách Tăng Bảng Bổ Trợ Katarina Mùa 7 Hiệu Quả, Cách Chơi Katarina Mùa 11

Sau đó sinh sản tệp tin BaseRepository.phpĐây là Interface nhưng mà họ đã sử dụng. Bên trong interface này, bạn add vào đoạn code sau:

Tiếp theo tại tệp tin UserRepository.php thừa kế BaseRepository.php

Bước 2: Tạo Repository

Tạo một thư mục bên trong folderapp đặt tên là Repositories với tạo nên folder Eloquents theo cấu tạo nlỗi sau:




Xem thêm: "Phổ Sóng Là Gì ? Định Hình Chương Trình Phát Sóng Là Gì

*

Bên trong folder Eloquents tạo thành tệp tin EloquentBaseRepository.php Class này sẽ implement lại interfaceBaseRepositoryInterface nhưng mà họ vừa chế tác sống Bước 1.Code trong file EloquentBaseRepository.php nhỏng sau:

model = $model; } public function index() return $this->model->paginate(); public function store($data = ) return $this->model->create($data); public function update($id, $data = ) $record = $this->model->findOrFail($id); return $record->update($data); public function delete($id) return $this->model->destroy($id); public function show($id) return $this->model->findOrFail($id); }Trong file EloquentBaseRepository.php, họ nên phải tạo lập những method được knhị báo vào interface và thực hiện chúng, nếu không đã gặp lỗi vào quá trình chạy cùng sẽ không còn thực hiện được class mà ta vừa tạo ra. Tiếp theo chế tạo tệp tin EloquentUserRepository thừa kế EloquentBaseRepository cùng class này đã implement lại interface UserRepositoryInterface nhưng mà bọn họ vừa tạo thành làm việc Cách 1.Code trong file EloquentUserRepository.php nhỏng sau:

Mã Sản Phẩm = $model; } public function all() return $this->model->with("roles")->get(); public function find($id) return $this->model->find($id); }

Cách 3: Đăng kí trong app/Providers/AppServiceProvider.php

public function register() $this->app->bind( "AppContractsRepositoriesUserRepository", "AppRepositoriesEloquentsEloquentUserRepository" );

Cách 4: Sử dụng Repository vào Controller

userRepository = $userRepository; } public function index() $users = $this->userRepository->all(); return view("users.index", $users >); }Lời kếtBây tiếng bạn đã có thể tiến hành thành công Repository trong Laravel. Trong một vận dụng bạn có thể xúc tiến nhiều Repository khác biệt, tất cả bài toán bạn cần làm là tạo ra một interface cùng tiếp nối chế tạo ra repository, sau đó ĐK chúng trong Service ProviderTrên đấy là mày mò của bản thân về Repository vào Laravel. Hy vọng nó có thể giúp ích được các bạn


Chuyên mục: Thông tin