Repository trong Laravel

Repository trong Larave 1

Repository trong Laravel là gì?

Là một lớp nằm trung tâm để xử lý việc truy cập dữ liệu và xử lý logic

Repository trong Larave 1

Repository trong Larave

Repository trong Laravel nghe qua kỹ thuật này có vẽ ghê gớm lắm! Nhưng nó rất đơn giản các bạn ạ.

Nó có một ý đồ duy nhất là: bạn sẽ để code của những chức năng vào những thư mục (folder) mang tên của nó thay vì cứ để đầy ra thư mục app.

 

Nó là trung gian giữa Controller và Model, hiểu là khi 1 yêu cầu gọi tới controller, controller gọi tới Repository, rồi thằng này gọi tới model lấy data và xử lý, xử lý xong thì trả về cho Controller. Thay vì, nếu Model chỉ làm công việc là lấy data từ database lên, rồi đưa thẳng cho Controller, thì chúng ta đưa vào lớp trung gian là Repository xử lý rồi đưa về controller. Mục đích là làm cho code dễ nhìn và chuyên nghiệp.

Ví dụ Repository trong Laravel 

Trong ví dụ  này, bạn sẽ làm các bước như sau:

  • Cài Laravel và kết nối với database, db dùng MySQL.
  • Tổ chức thư mục (folders) và files
  • Tạo Interface
  • Thực hiện implement interface đó.
  • Kết nối giữa interface và class mà mình đã implement
  • Gọi các method ở trong class repository từ controller
  • Define các route
  • Hiển thị kết quả.

Chúng ta chạy lệnh khởi tạo một cái project web với Laravel

Thêm vài dependency cần cho laravel trong composer.json

Sử dụng laravelcollective/html để tạo form, bạn có thể làm nhiều thư viện khác để sử dụng.

Sau đó tạo 2 alias, làm như vậy để gọi cho dễ dàng hơn.

Tạo file database/database.sqlite

Cuối cùng bạn vào config/app.php làm thêm việc đổi connection như bên dưới nhé

Như vậy là các bạn chạy được với Laravel rồi đó!

Tiếp theo chúng ta làm tới thành phần chính hay sử dụng trong laravel Controller, Model and Migration

– Tạo controller

– Tạo Model

-Tạo migration

Khai báo trường description trong file model vừa tạo: app/Task.php

Chạy command line để nó làm việc với database

Vậy là các bạn tạo xong theo mô hình MVC trong Laravel rồi nhé!

Please follow and like us: