Câu hỏi cơ bản
- Laravel là gì? Những tính năng chính của Laravel là gì?
- Các yêu cầu hệ thống để cài đặt Laravel?
- Composer trong Laravel là gì?
- Artisan là gì? Kể tên một số lệnh Artisan phổ biến.
- Sự khác nhau giữa
get()
, first()
, find()
và all()
trong Eloquent?
- Middleware là gì? Cách sử dụng middleware trong Laravel?
- Route trong Laravel là gì? Phân biệt Route nhóm và Route đơn lẻ.
- CSRF token trong Laravel là gì? Nó được sử dụng như thế nào?
- Giải thích khái niệm Service Container trong Laravel.
- Cách kết nối Laravel với cơ sở dữ liệu MySQL?
Câu hỏi trung cấp
- Eloquent ORM là gì? Ưu điểm của Eloquent ORM so với Query Builder?
- Tạo và sử dụng Migration trong Laravel như thế nào?
- Event và Listener trong Laravel là gì? Cách chúng hoạt động?
- Phân biệt Model Binding tường minh và ngầm định trong Laravel.
- Cách sử dụng Queue trong Laravel? Khi nào nên sử dụng Queue?
- Cách thực hiện gửi email trong Laravel?
- Giải thích Repository Pattern và cách triển khai trong Laravel.
- Session trong Laravel hoạt động như thế nào? Các phương thức lưu trữ session có sẵn?
- Cách triển khai API Authentication trong Laravel (ví dụ: sử dụng Passport hoặc Sanctum)?
- Giải thích Observer trong Laravel và cách sử dụng nó.
-
Câu hỏi nâng cao
- Laravel Service Provider là gì? Tại sao cần sử dụng Service Provider?
- Cách quản lý mối quan hệ phức tạp giữa các bảng bằng Eloquent (hasManyThrough, polymorphic)?
- Giải thích Pipeline Pattern trong Laravel.
- Tối ưu hóa hiệu suất ứng dụng Laravel như thế nào?
- Bạn sẽ triển khai Multi-Tenancy trong Laravel như thế nào?
- Phân biệt Soft Deletes và Force Deletes trong Eloquent.
- Cách triển khai và cấu hình Redis Cache trong Laravel?
- Cách sử dụng Laravel Telescope để debug ứng dụng?
- Triển khai Custom Blade Directive trong Laravel như thế nào?
- Làm thế nào để tạo và sử dụng Package tùy chỉnh trong Laravel?
Câu trả lời cho các câu hỏi cơ bản
-
Laravel là gì? Những tính năng chính của Laravel là gì?
- Laravel là một framework PHP mã nguồn mở, được thiết kế để phát triển ứng dụng web theo kiến trúc MVC (Model-View-Controller).
- Tính năng chính:
- Hệ thống routing linh hoạt.
- Eloquent ORM (truy vấn cơ sở dữ liệu dễ dàng).
- Blade Template Engine.
- Hỗ trợ tích hợp các hệ thống API Authentication.
- Artisan CLI (Command Line Interface).
- Quản lý Migration và Schema Database.
-
Composer trong Laravel là gì?
- Composer là công cụ quản lý các thư viện PHP. Nó cho phép bạn cài đặt, cập nhật và quản lý các package của Laravel hoặc bên thứ ba.
-
Artisan là gì? Kể tên một số lệnh Artisan phổ biến.
- Artisan là công cụ dòng lệnh tích hợp trong Laravel, giúp tự động hóa các tác vụ thường xuyên.
- Lệnh phổ biến:
php artisan make:model ModelName
php artisan migrate
php artisan serve
php artisan make:controller ControllerName.
-
Middleware là gì? Cách sử dụng middleware trong Laravel?
- Middleware là lớp trung gian xử lý HTTP request trước khi đến controller hoặc sau khi controller xử lý xong.
- Ví dụ: Kiểm tra xác thực (authentication).
- Tạo middleware:
php artisan make:middleware MiddlewareName
CSRF token trong Laravel là gì? Nó được sử dụng như thế nào?
- CSRF (Cross-Site Request Forgery) token giúp bảo vệ ứng dụng khỏi các cuộc tấn công giả mạo yêu cầu từ một trang web khác.
- Laravel tự động sinh và xác thực CSRF token trong các form HTML:
<form method="POST" action="/submit">
@csrf
<input type="text" name="name">
<button type="submit">Submit</button>
</form>
Câu trả lời cho các câu hỏi trung cấp
-
Eloquent ORM là gì? Ưu điểm của Eloquent ORM so với Query Builder?
- Eloquent ORM là một công cụ ánh xạ quan hệ đối tượng (ORM) trong Laravel giúp thao tác với cơ sở dữ liệu thông qua các class model.
- Ưu điểm:
- Code dễ đọc và bảo trì hơn.
- Hỗ trợ quản lý quan hệ giữa các bảng (One-to-One, One-to-Many, Many-to-Many).
- Tự động hóa nhiều thao tác CRUD.
-
Cách sử dụng Queue trong Laravel? Khi nào nên sử dụng Queue?
- Queue được dùng để xử lý các tác vụ tốn thời gian (như gửi email, xử lý hình ảnh) ở chế độ nền.
- Tạo job:
php artisan make:job SendEmailJob
dispatch(new SendEmailJob($data));
Cách thực hiện gửi email trong Laravel?
- Laravel hỗ trợ gửi email qua các dịch vụ như SMTP, Mailgun, SES...
- Cấu hình: File
.env
:
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=your_email@example.com
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
Mail::to('recipient@example.com')->send(new YourMailableClass());
Observer trong Laravel là gì và cách sử dụng nó?
- Observer là lớp quản lý các sự kiện của model, như
created
, updated
, deleted
.
- Tạo Observer:
php artisan make:observer UserObserver --model=User
Đăng ký Observer:
- Trong
AppServiceProvider
:
User::observe(UserObserver::class);
Câu trả lời cho các câu hỏi nâng cao
-
Laravel Service Provider là gì? Tại sao cần sử dụng Service Provider?
-
Tối ưu hóa hiệu suất ứng dụng Laravel như thế nào?
- Cách thực hiện:
- Sử dụng caching (route cache, config cache)
php artisan route:cache
php artisan config:cache
- Giảm thiểu query không cần thiết (sử dụng eager loading).
- Dùng Redis cho caching và session.
- Tối ưu hóa bộ nhớ bằng cách sử dụng Queue.