TOP 39+ Câu hỏi phỏng vấn Laravel và trả lời chi tiết

Các câu hỏi phỏng vấn Laravel fresher, junior

Nhóm câu hỏi phỏng vấn Laravel cơ bản được thiết kế để đánh giá các ứng viên chưa có nhiều kinh nghiệm. Các câu hỏi trong nhóm này tập trung vào các khái niệm, định nghĩa và lý thuyết về thuộc tính, thành phần và các câu lệnh phổ biến trong Laravel.

TygtmuGLtAGiTEwnfFiu9IRZCRTln0Q8HTOkHO1Zxn69pUlsYxpLsgkdHeNSINNxQrvPD3-qwem-wabEKUaZ7NyIimnCYRs2pacOwDiIDDl4BQXo_M_Y0AA5Yj_p5ux93Y3jjp405oKQuJ53IIVr2VY

1. Laravel là gì?

Laravel là một framework PHP mã nguồn mở được xây dựng trên nền tảng Symfony. Nó cung cấp một bộ công cụ và thư viện mạnh mẽ để phát triển ứng dụng web sử dụng mô hình kiến trúc MVC. Laravel được phát triển với giấy phép MIT và mã nguồn của nó được lưu trữ trên GitHub. Laravel là một khung PHP đáng tin cậy và tuân theo các quy tắc ngôn ngữ chính xác.

2. Define composer là gì?

Composer là một trình quản lý gói ứng dụng cấp ứng dụng (application-level package) cho PHP. Nó cung cấp một định dạng chuẩn để quản lý các thư viện và phụ thuộc phần mềm PHP.

3. Phần mềm trung gian HTTP là gì?

Phần mềm trung gian HTTP là một kỹ thuật để lọc các yêu cầu HTTP. Trong Laravel, nó bao gồm một phần mềm trung gian để kiểm tra xem người dùng ứng dụng đã được xác thực hay chưa.

4. Các phương thức của trình tạo truy vấn có những loại nào?

Các phương thức của trình tạo truy vấn bao gồm:

  • max()
  • min()
  • sum()
  • avg()
  • count()

5. Bundles là gì?

Bundles là các thư viện mã nguồn mở chứa các thành phần có thể tái sử dụng cho ứng dụng Laravel. Bundles được sử dụng để thêm chức năng cho Laravel. Một bundle có thể chứa route, controller, view, model, migration, và nhiều thành phần khác.

6. Thư mục nào được sử dụng phổ biến trong ứng dụng Laravel?

Các thư mục thường được sử dụng trong ứng dụng Laravel bao gồm:

  • App/: Thư mục nguồn chứa các mã nguồn của ứng dụng, bao gồm bộ điều khiển, chính sách và mô hình.
  • Config/: Chứa các tệp cấu hình của ứng dụng. Thường thì chúng không được chỉnh sửa trực tiếp mà phụ thuộc vào các giá trị được thiết lập trong tệp .env (môi trường) ở thư mục gốc của ứng dụng.
  • Database/: Chứa các tệp cơ sở dữ liệu, bao gồm migrations, seeds và test factories.
  • Public/: Thư mục có thể truy cập công khai, chứa các tệp đã biên dịch và tệp index.php.

7. Bạn đã từng tìm hiểu về định tuyến ngược (reverse routing) trong Laravel chưa?

Định tuyến ngược là phương pháp tạo URL dựa trên ký hiệu hoặc tên. Nó làm cho ứng dụng Laravel trở nên linh hoạt hơn.

lWCLCOroqB-zC4C8Uvchvaq-cmCdmr-b6dee0bBAERwFQkfb9xLqWaVGwqoI378W7FJ9O1jLxuxSc_RnNMHnwndl97O6suGxRAXm5-WSslB8cRJlkUYupEIH9mAfIWEZeJ9F8Q22x35cyUyfyZVVRLE

8. Contracts trong Laravel có gì đặc biệt?

Contracts là tập hợp các giao diện của framework Laravel. Chúng cung cấp các dịch vụ cốt lõi. Các contracts được xác định trong Laravel bao gồm việc triển khai các thành phần cốt lõi của framework tương ứng.

9. Bạn sẽ xác định Facades của Laravel ở đâu?

Tất cả các Facades của Laravel được định nghĩa trong namespace IlluminateSupportFacades.

10. Phương thức get và post trong Larravel có gì khác nhau?

  • Phương thức GET cho phép gửi một lượng dữ liệu giới hạn trong tiêu đề (header).
  • Phương thức POST cho phép gửi một lượng lớn dữ liệu trong phần body.

11. Bạn hãy cho biết cách để truyền nhiều biến từ controller sang blade?

Trong file view, bạn có thể hiển thị các biến bằng cú pháp {{ $variable }}, {{ $variable2 }}, {{ $variable3 }}.

Ví dụ:

$variable = 'TOP';
$variable2 = 'Câu hỏi phỏng vấn Laravel';
$variable3 = 'mới nhất';

return view('frontend.index', compact('variable', 'variable2', 'variable3'));

12. Bạn truyền một tên bảng custom trong model bằng cách nào?

Bạn có thể truyền một tên bảng custom trong model bằng cách thêm một biến protected $table = 'TÊN BẢNG' trong model. Nếu không có biến protected $table được truyền, Laravel sẽ mặc định sử dụng quy tắc đặt tên là tên model + ‘s’. Ví dụ: Model là login thì tên bảng là logins.

13. Service container Laravel là gì?

Service container Laravel là một công cụ sử dụng mô hình dependency injection trong Laravel để cung cấp dịch vụ cho các thành phần của ứng dụng.

14. Bạn kích hoạt nhật ký truy vấn trong Laravel bằng cách nào?

Bạn có thể kích hoạt nhật ký truy vấn trong Laravel bằng cách sử dụng phương thức EnableQueryLog().

15. Events (sự kiện) trong Laravel là gì?

Events là một cách giúp bạn đăng ký và lắng nghe các sự kiện xảy ra trong ứng dụng Laravel. Một số sự kiện được Laravel tự động kích hoạt khi có bất kỳ hoạt động nào xảy ra.

Ví dụ: “Hôm nay là thứ 6, trời thì đang mưa tầm tã đúng lúc bạn đi làm. Bạn quyết định viết mail xin nghỉ phép. Nhưng ngẫm lại một lúc vì tiếc phép nghỉ nên bạn lại đi làm. Vậy event ở đây chính là bạn đang buồn vì trời mưa to đúng lúc đi làm. Listener chính là việc bạn lắng nghe cái event buồn vì mưa lúc đi làm đó thế nào.”

16. Liệt kê các loại relationships trong Laravel Eloquent

Các loại mối quan hệ trong Laravel Eloquent bao gồm:

  • 1 – 1
  • Một nhiều (1 – n)
  • Nhiều nhiều (n – n)
  • Có nhiều mối quan hệ
  • Quan hệ đa hình

17. Cơ sở dữ liệu được hỗ trợ bởi Laravel có những loại nào?

Laravel hỗ trợ các cơ sở dữ liệu sau:

  • PostgreSQL
  • Máy chủ SQL
  • SQLite
  • MySQL

18. Lumen Laravel là gì?

Lumen Laravel là một micro-framework. Đây là phiên bản nhỏ hơn và nhanh hơn của Laravel, được thiết kế để phát triển các API REST và microservices.

19. PHP artisan là gì?

PHP artisan là một công cụ dòng lệnh của Laravel. Nó cung cấp các lệnh giúp bạn xây dựng ứng dụng Laravel một cách dễ dàng, bao gồm các lệnh migrate, seed, make:model, make:controller, make:view, test, server,…

20. Để xử lý các ngoại lệ thì cần dùng class nào?

Các ngoại lệ của Laravel được xử lý bởi lớp AppExceptionsHandler.

Câu hỏi phỏng vấn Laravel nâng cao level middle, senior

Nhóm câu hỏi phỏng vấn Laravel này dành cho các lập trình viên có trình độ middle hoặc senior, có nhiều kinh nghiệm làm việc trong các dự án PHP thực tế sử dụng Laravel. Ngoài kiến thức chuyên môn, nhà tuyển dụng có thể mở rộng câu hỏi về PHP hoặc các framework liên quan.

1. Công dụng của hàm dd() là gì?

Hàm dd() được sử dụng để hiển thị (dump) nội dung của một biến và kết thúc kịch bản. Định dạng đầy đủ của dd() là “Dump and Die”.

2. Liệt kê các lệnh artisan phổ biến được sử dụng trong Laravel

Laravel hỗ trợ các lệnh artisan (lệnh thủ công) sau:

  • php artisan down: Tắt chế độ bảo trì.
  • php artisan up: Bật chế độ bảo trì.
  • php artisan make:controller: Tạo một controller mới.
  • php artisan make:model: Tạo một model mới.
  • php artisan make:migration: Tạo một migration mới.
  • php artisan make:middleware: Tạo một middleware mới.

3. Phân biệt delete()softDeletes()

  • delete() được sử dụng để xóa các bản ghi (record) khỏi bảng cơ sở dữ liệu.
  • softDeletes() được sử dụng để đánh dấu các bản ghi đã bị xóa. Dữ liệu không được xóa khỏi bảng.

4. Bạn tạo tệp sitemap.xml real time trong Laravel bằng cách nào?

Có hai cách để tạo tệp sitemap.xml real time trong Laravel:

  • Sử dụng lệnh sitemap:generate với tham số -update trong artisan command.
  • Sử dụng class Sitemap và tạo vòng lặp để tạo tệp sitemap.xml real time.

Tệp sitemap.xml được sử dụng để tổ chức các trang của trang web để công cụ tìm kiếm biết về cách tổ chức nội dung của trang web.

5. Faker trong Laravel là gì?

Faker là một gói hoặc module được sử dụng để tạo dữ liệu giả (fake data). Dữ liệu này có thể được sử dụng cho mục đích kiểm thử. Faker cung cấp các phương thức để tạo dữ liệu như số, địa chỉ, ngày tháng, thanh toán, văn bản lorem,…

dADbN1R8Ao4qDksuMDvZwc8669uUuau73rWIye-8Cv5VKgUcTsgQ5Q8Nf0dhOsLnkrxHhE2JkZ6T5q2Bsd05s8RJbujixP3Dgkg5rbVee6QCNVbOc3RBcT501fUDCHIt9FWfhFyUIH1o4Wdus8eglxQ

6. Phân biệt insert()insertGetId() trong Laravel

  • insert() được sử dụng để chèn một bản ghi vào bảng, không cần ID tự động tăng.
  • insertGetId() cũng chèn một bản ghi vào bảng, nhưng được sử dụng khi cần ID tự động tăng.

7. @include trong Laravel là gì?

@include là một cách để nhúng một phần hoặc toàn bộ nội dung của một view khác vào view hiện tại với nhiều tùy chọn. Người dùng cũng có thể tải nhiều tệp tin trong một view.

8. Cookie Laravel là gì?

Cookie là một tệp nhỏ được gửi từ một trang web cụ thể và được lưu trữ trên máy tính của người dùng trong khi người dùng đang sử dụng trình duyệt.

9. Tệp nào được sử dụng để tạo kết nối với cơ sở dữ liệu?

Kết nối với cơ sở dữ liệu được tạo trong tệp .env.

10. Giới hạn tốc độ API của Laravel là gì?

Giới hạn tốc độ API là một tính năng trong Laravel, cho phép bạn điều chỉnh số lượng yêu cầu mà một người dùng có thể thực hiện trong một khoảng thời gian nhất định. Giới hạn tỷ lệ giúp các nhà phát triển Laravel xây dựng ứng dụng an toàn và ngăn chặn các cuộc tấn công từ chối dịch vụ (DOS).

11. Ajax trong Laravel là gì?

Ajax (Asynchronous JavaScript and XML) là một kỹ thuật phát triển web được sử dụng để tạo các ứng dụng web không đồng bộ, cho phép tương tác với máy chủ mà không cần tải lại trang. Trong Laravel, các hàm Reply()json() được sử dụng để tạo các ứng dụng web không đồng bộ (asynchronous web applications).

12. Response trong Laravel là gì?

Response trong Laravel là một đối tượng đại diện cho phản hồi HTTP được ứng dụng gửi đến trình duyệt của người dùng. Response được định nghĩa trong class IlluminateHttpResponse. Chúng ta có thể sử dụng đối tượng response để trả về phản hồi ở các định dạng như JSON, HTML và file.

13. Thư mục bootstrap trong Laravel có tác dụng gì?

Thư mục bootstrap trong Laravel được sử dụng để khởi tạo một dự án Laravel. Thư mục này chứa tệp app.php có trách nhiệm khởi tạo framework.

14. Timeout mặc định của phiên là bao lâu?

Thời gian timeout mặc định của phiên trong Laravel là 2 tiếng.

15. Robot.txt được đặt trong thư mục nào?

Tệp Robot.txt được đặt trong thư mục public.

Câu hỏi tình huống phỏng vấn Laravel

Nhóm câu hỏi này tập trung vào các tình huống xảy ra trong quá trình làm việc với Laravel, PHP và các tình huống công sở khác. Nhà tuyển dụng sử dụng nhóm câu hỏi này để đánh giá và thử thách ứng viên, lựa chọn những ứng viên ưu tú, phù hợp và có tiềm năng nhất.

FEATURED TOPIC