Giới thiệu broadcasting trong Laravel Websocket được sử dụng để thực thi các tác vụ realtime, live-update. Khi 1 dữ liệu được cập nhật ở server, 1 tin nhắn sẽ được gửi qua websocket về client. Ví dụ bạn cần export dữ liệu ra file CSV và gửi email cho user. Tuy nhiên việc này…
Category Archives: PHP
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…
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…
1. Array map: array_map trả về 1 mảng với các phần tử đã được xử lý qua hàm callback. Ví dụ: tạo 1 mảng có giá trị gấp đôi mảng có sẵn: 2. Array filter: array_filter lọc mảng qua 1 hàm callback (hàm này trả về giá trị boolean). Ví dụ: lọc các số lẻ…
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…
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…
1. Trait trong PHP PHP chỉ hỗ trợ đơn kế thừa (single inherit). Cơ chế Trait giúp sử dụng lại các phương thức từ các class khác nhau mà không cần kế thừa. Ví dụ: Có thể dùng được nhiều trait trong cùng 1 class với từ khóa use. Sử dụng từ khóa insteadof để…
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…
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…
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ử…
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ễ…
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ể…
Form trong Blade: CSRF Field: Method field: Validation Errors: Bạn có thể dùng thêm chỉ thị @else: Bạn có thể pass tên của error bag làm tham số thứ 2 cho chỉ thị @error để truy xuất thông báo lỗi ở page có nhiều form: Stacks trong Blade: Blade cho phép push vào 1 stack…
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á…
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…
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…
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…
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…
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…
