Bài viết Repository Pattern Là Gì, Repository Pattern Trong Laravel thuộc chủ đề về Thắc Mắt đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng TruongGiaThien.Com.Vn tìm hiểu Repository Pattern Là Gì, Repository Pattern Trong Laravel trong bài viết hôm nay nha !
Các bạn đang xem nội dung về : “Repository Pattern Là Gì, Repository Pattern Trong Laravel”

Mở đầu

Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ và phát triển các phần mềm, ứng dụng, theo kiến trúc MVC. Hiện nay, Laravel đang là PHP framework thường nhật nhất và tốt nhất.một trong số những cách thường nhật nhất để xây dựng một ứng dụng dùng Laravel là Repository Pattern.Đầu tiên, để khả năng triển khai được Repository Pattern trong Laravel chúng ta cần phải hiểu được Repository Pattern là gì và lợi ích khi dùng nó.

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

Repository Pattern là gì?

Repository Pattern là một cách tổ chức source code trong Laravel.Ý tưởng cơ bản và mục tiêu chính để dùng Repository Pattern là xây dựng một lớp kết nối giữa tầng Business Login và Data Access, giúp cho việc truy cập dữ liệu được chặt chẽ và bảo mật hơn.

Xem thêm: Trapboy Là Gì – #cf471 Cho Con Bé Hỏi Trap Là Gì Vậy

Trong Laravel, Repository là cầu nối giữa Model và Controller, lưu trữ logic truy vấn dữ liệu. Các lệnh truy vấn dữ liệu vốn được viết trực tiếp ở Controller sẽ được đưa vào Repository. Khi đó, Controller sẽ dùng Repository để tương tác với dữ liệu thay vì dùng trực tiếp. Việc truy vấn dữ liệu được giấu kín trong Repository.Thông thường trong Laravel, các phương thức như find, create, update, delete.. được viết khá giống nhau, chỉ khác nhau trên Model (đối tượng) cần tương tác. vì thế các đoạn code này nên được đưa vào Repository để tiết kiệm việc việc code.

Bài Nổi Bật  Điều hòa âm trần là gì? Có nên mua không?

Xem thêm: Chăm Sóc Khách Hàng Là Gì, Nhân Viên

Lợi ích của việc dùng Repository PatternTập trung hóa logic truy vấn dữ liệu giúp code dễ bảo trì hơnLogic truy vấn dữ liệu và logic code khả năng được tách biệtGiảm sự trùng lặp codeHạn chế lỗi trong truy vấnDễ dàng thực hiện test

Thông thường khi không dùng Repository, code sẽ như thế 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. mặc khác, có một vấn đề cần chú ý ở đây đó là Controller được gắn chặt vào Model dùng để thực hiện các thao tác với Cơ sở dữ liệu. Điều này gây ra ra 2 vấn đề nghiêm trọng như sau:

Chúng ta không thể viết Test cho ControllerController gắn chặt với ORM Layer, nếu có những thay đổi ngay về cầu trúc bảng, hay thực hiện giải pháp nào đó tái cấu trúc, chúng ta sẽ gặp điều kiện trong việc phải tìm lại toàn bộ các controller và sửa

Đó chính là lí do chúng ta nên dùng Repository trong trường hợp này. Chúng ta sẽ xây dựng một lớp trung gian giữa Controller và Model, thay vì việc Controller tương tác trực tiếp với Model, Controller sẽ làm việc với Repository đã được đóng gói và các thao tác trong Model. Với bất kì sự thay đổi ngay nào liên quan đến Model, chúng ta chỉ cần tìm và sửa lại Repository.Chúng ta sẽ viết lại code như 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 >); dùng Repository trong LaravelSau khi tìm hiểu thông tin về các lợi ích của Repository, bây giờ chúng ta hãy cùng triển khai Repository trong Laravel.

Bước 1: Tạo một Repository Interface

Tạo một folder bên trong folder app đặt tên là Contracts, sau đó tạo folder Repositories theo cấu trúc sau

*

Sau đó tạo file BaseRepository.phpĐây là Interface mà chúng ta sẽ dùng. Bên trong interface này, bạn add vào đoạn code sau:

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

Bước 2: Tạo Repository

Tạo một folder bên trong folderapp đặt tên là Repositories và tạo folder Eloquents theo cấu trúc như sau:

*

Bên trong folder Eloquents tạo file EloquentBaseRepository.php Class này sẽ implement lại interfaceBaseRepositoryInterface mà chúng ta vừa tạo ở Bước 1.Code trong file EloquentBaseRepository.php như 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, chúng ta bắt buộc phải tạo các method được khai báo trong interface và triển khai chúng, nếu không sẽ gặp lỗi trong quy trình chạy và sẽ không dùng được class mà ta vừa tạo ra. Tiếp theo tạo file EloquentUserRepository kế thừa EloquentBaseRepository và class này sẽ implement lại interface UserRepositoryInterface mà chúng ta vừa tạo ở Bước 1.Code trong file EloquentUserRepository.php như sau:

model = $model; } public function all() return $this->model->with(“roles”)->get(); public function find($id) return $this->model->find($id); }

Bước 3: Đăng kí trong app/Providers/AppServiceProvider.php

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

Bài Nổi Bật  Bệnh Nhân Bị Sốt Rét Run Là Bệnh Gì ? Khi Lên Cơn Sốt Rét Bạn Cần Làm Gì

Bước 4: dùng Repository trong Controller

userRepository = $userRepository; } public function index() $users = $this->userRepository->all(); return view(“users.index”, $users >); }Lời kếtBây giờ bạn đã khả năng triển khai thành công Repository trong Laravel. Trong một ứng dụng bạn cũng khả năng triển khai nhiều Repository khác nhau, tất cả việc bạn cần làm là tạo một interface và sau đó tạo repository, sau đó đăng ký chúng trong Service ProviderTrên đây là tìm hiểu của mình về Repository trong Laravel. Hy vọng nó khả năng giúp ích được các bạn
Chuyên mục: Hỏi Đáp

Các câu hỏi về Repository Pattern Là Gì, Repository Pattern Trong Laravel


Nếu có bắt kỳ câu hỏi thắc mắt nào vê Repository Pattern Là Gì, Repository Pattern Trong Laravel hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3 Bài viết Repository Pattern Là Gì, Repository Pattern Trong Laravel ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Repository Pattern Là Gì, Repository Pattern Trong Laravel Cực hay ! Hay thì hãy ủng hộ team Like hoặc share. Nếu thấy bài viết Repository Pattern Là Gì, Repository Pattern Trong Laravel rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

Các Hình Ảnh Về Repository Pattern Là Gì, Repository Pattern Trong Laravel

Repository Pattern Là Gì, Repository Pattern Trong Laravel

Các từ khóa tìm kiếm cho bài viết #Repository #Pattern #Là #Gì #Repository #Pattern #Trong #Laravel

Xem thêm kiến thức về Repository Pattern Là Gì, Repository Pattern Trong Laravel tại WikiPedia

Bạn nên tìm thêm thông tin về Repository Pattern Là Gì, Repository Pattern Trong Laravel từ trang Wikipedia tiếng Việt.◄

Tham Gia Cộng Đồng Tại

💝 Nguồn Tin tại: https://truonggiathien.com.vn/

💝 Xem Thêm Chủ Đề Liên Quan tại : https://truonggiathien.com.vn/hoi-dap/

Give a Comment