Category Archives: PHP

Học Laravel – Bài 39: Laravel Collections

Giới thiệu Collections trong Laravel: Laravel Illuminate\Support\Collection cung cấp cách xử lý thuận tiện với dữ liệu mảng. Ví dụ sau sử dụng helper collect để tạo 1 collection instance từ array, chạy strtoupper lên mỗi element, và xóa những empty element: Tạo Collections: Helper collect trả về 1 instance của Illuminate\Support\Collection: Lưu ý: kết…

Học Laravel – Bài 40: Eloquent: Mutators & Casting

Giới thiệu Mutators & Casting trong Eloquent: Accessors (tiếp cận), mutators (biến đổi) và casting (ép kiểu) cho phép bạn chuyển đổi các thuộc tính (attribute) của Eloquent khi bạn truy xuất hoặc thiết lập (set) chúng trên model. Ví dụ bạn muốn dùng Laravel encrypter để mã hóa 1 giá trị trước khi lưu…

Học Laravel – Bài 38: Cache trong Laravel

Giới thiệu về Cache trong Laravel: Một số tác vụ hoặc quá trình truy xuất dữ liệu có thể ngốn CPU hoặc mất nhiều thời gian để hoàn thành. Trong trường hợp này ta cần cache dữ liệu để có thể truy xuất nhanh hơn ở lần sau. Cache data thông thường lưu trữ trong…

Học Laravel – Bài 36: Events trong Laravel

Giới thiệu Events trong Laravel Laravel event cung cấp cách thực thi pattern observer (người quan sát), cho phép bạn theo dõi và lắng nghe các sự kiện xảy ra trong ứng dụng. Event class được lưu trong thư mục app/Events, còn listener được lưu trong app/Listeners. 1 event có thể có nhiều listener không…

Học Laravel – Bài 24: Error Handling

Mặc định khi start dự án Laravel, error và exception handling được cấu hình sẵn. Class App\Exceptions\Handler là nơi tất cả exception được log và render đến user. Cấu hình: Option debug trong file config/app.php sẽ quyết định mức độ error hiển thị với user. Mặc định ở APP_DEBUG, set up trong file .env. Exception…

Học Laravel – Bài 35: Email Verification

Giới thiệu Email Verification trong Laravel Nhiều ứng dụng yêu cầu xác minh email. Laravel cung cấp sẵn dịch vụ để gửi và xác minh email. Bạn có thể sử dụng Starter kits. Chuẩn bị model: Đầu tiên model User cần implement contract Illuminate\Contracts\Auth\MustVerifyEmail: Một khi interface này được thêm vào model, user mới đăng…

Học Laravel – Bài 33: Authentication

Giới thiệu Authentication trong Laravel: Laravel cung cấp tính năng xác thực và login nhanh chóng, bảo mật và dễ dàng thực thi. Trong core Laravel, xác thực được cấu thành từ “guards” và “providers”. Guards định nghĩa cách user được xác thực trên mỗi request. Ví dụ session guard lưu trữ trạng thái sử…

Học Laravel – Bài 32: Eloquent: Collections

Giới thiệu Eloquent Collections: Tất cả method của Eloquent mà trả về nhiều hơn 1 kết quả sẽ trả về 1 instance của Illuminate\Database\Eloquent\Collection, bao gồm cả kết quả truy vấn thông qua get method hoặc tiếp cận qua quan hệ. Eloquent collection extend Laravel base collection, có nhiều chức năng để làm việc dễ…

Học Laravel – Bài 19: Asset Bundling (Vite)

1. Giới thiệu Vite: Vite là frontend build tool cung cấp môi trường phát triển & đóng gói code cho production. Laravel sử dụng Vite để đóng gói CSS và Javascript cho production. Vite được chọn thay thế Laravel Mix ở các phiên bản mới hơn. 2. Cài đặt và setup ViteJS: Bạn có thể…

Học Laravel – Bài 18: Blade (Phần 2) – Building Layouts

Build layouts sử dụng Components: Tạo layout component: Áp dụng layout: Ví dụ tạo 1 view đơn giản hiển thị task list: Như vậy phần content trong view trên sẽ được cung cấp cho biến $slot ở trong layout component. Ở layout còn có biến $title nhận giá trị mặc định khi không truyền giá…

Học Laravel – Bài 8: Service Container

Giới thiệu Service container trong Laravel: Service container là tool mạnh mẽ để quản lý các class dependency và thực thi Dependency injection. Dependency injection nghĩa là 1 class phụ thuộc (dependency) được tiêm (inject) vào class khác thông qua constructor hoặc setter method. Để sử dụng Service Container thì có 2 khái niệm đi…

Học Laravel – Bài 34: Authorization

Giới thiệu Authorization trong Laravel: Laravel cũng cung cấp cách đơn giản để authorize (ủy quyền – phân quyền) user đối với các tài nguyên cho trước. Laravel sử dụng 2 cách chính để phân quyền: gates và policies. Gates và policies giống như routes và controllers. Gates cung cấp cách đơn giản dựa vào…

Học Laravel – Bài 31: Eloquent: Relationships

Giới thiệu: Database table thường có mối liên hệ với nhau. Eloquent giúp quản lý và làm việc với những mối quan hệ này dễ dàng. Define relationship: Eloquent relationship được define như method trong model. Ví dụ: Quan hệ One To One: Ví dụ 1 User tương ứng với 1 Phone. Để define mối…

Học Laravel – Bài 30: Eloquent

Eloquent là 1 object-relational mapper (ORM) để tương tác với db. Mỗi db table sẽ có một model tương ứng. Tạo model class: Tạo Eloquent model trong thư mục app/Models, class này extend Illuminate\Database\Eloquent\Model. Sử dụng lệnh artisan để tạo model: Nếu muốn khởi tạo db migration khi tạo model, sử dụng option –migration hoặc…

Học Laravel – Bài 29: Database: Migrations

Migration giống như version control cho db. Facade Schema cung cấp hỗ trợ cho create, manipulate db. Migration sử dụng facade này để create, modify db. Khởi tạo migrations: Lệnh make:migration để khởi tạo db migration. Migration mới sẽ nằm trong thư mục database/migrations. Mỗi file sẽ bao gồm timestamp cho phép Laravel xác định…