Các câu hỏi phỏng vấn lập trình php thường gặp phần 2 Laravel

ngày 02-03-2022

Xem thêm bài viết  Các câu hỏi phỏng vấn php cơ bản phần 1

 

1. Middleware trong Laravel là gì

 

Middleware như một cánh cửa trung gian giữa Router và controller. Middleware là một loại cơ chế lọc HTTP request. Ví dụ: Nếu người dùng không được xác thực và nó đang cố truy cập vào admin Middleware sẽ chuyển hướng người dùng đó đến trang đăng nhập. Hoăc thực hiện một thực thi lệnh nào đó trước khi người dùng truy cập vào controller...

Một số  cách dùng middleware, 

- middleware globle, được sử dụng trong mọi request

- middleware  được sử dụng cho router hoặc nhóm router

- middleware  được sử dụng trong controller

 

2. Có mấy cách query trong laravel, bạn hay sử dụng cách nào, vì sao

 

Có 2 cách truy vấn trong laravel, đó là Eloquent và Query builder

Eloquent  và Query builder đều là công cụ truy vấn của laravel giúp cho coder dễ dàng thao tác với database

Eloquent, các thao tác với database đều cần thông qua model, và hỗ trợ rất nhiều hàm làm cho việc truy vấn đơn giản hơn, hỗ trợ những relationship giúp cho

code dễ đọc và đẹp hơn, 

Query buider, thao tác với db thông qua lớp DB, Nó có thể được sử dụng để thực thi hầu hết những thao tác về database trong ứng dụng

So sánh:

Query builder và Eloquent đều sử dụng : 'PDO parameter binding' nên sẽ giúp chúng ta tránh được lỗi sql injection.

Có thể dùng tất cả hàm của query buider trong eloquent, nhưng không thể làm ngược lại

Nhưng eloquent không thể thực hiện được những truy vấn quá phức tạp

Tùy vào câu truy vấn mà ta có thể lựa chọn cách dùng eloquent hay query builder, Tôi thì hay sử dụng eloquent nhưng lai query buider, tức là vẫn dùng model để thao tác với database

Nhưng câu truy vấn thì vẫn sự dụng hàm của eloquent và query builder, với những câu truy vấn phức tạp cần chèn sql thuần thì cần sài hàm 

DB::raw()


3. Migration là gì

 

 

Migration là công cụ để giúp quản lí các thao tác tạo database và data bằng code

ưu điểm của migration là khi chung một team làm project, hầu hết sự thay đổi về database sẽ được thể hiện trong mygration, và member mới join team chỉ cần chạy lệnh thì sẽ có nguyên bộ database của project mà không cần phải kéo về, vì thế  nó rất tiện khi trong team làm việc mỗi khi có thay đổi table, cả team sẽ có thể cập nhật db mới một cách đễ dàng. Lúc mới cái đặt larvel thì trong source code đã có sẵn một số bảng liên quan tới đăng nhập, đăng kí người dùng.

 

 4.Command line trong laravel là gì

 

Đây là hệ thống giao diện command line trong laravel giúp thực hiện nhiều thao tác hỗ trợ cho việc chạy các lệnh laravel cơ bản, cũng như là thực hiện một số thao tác như chạy một controller nào đó mà không cần thông qua router, hoặc viết batch job

Đây là một vấn đề tương đối dài, để hiểu chi tiết về command line, xin mời các bạn đọc bài: https://daylaptrinhphp.com/32-cach-tao-command-artisan-trong-laravel.html

 

5. Service container là gì

 

Service container là một khái niệm nằm trong tần Architecture Concepts (kiến trúc) của laravel, hỗ trợ sử dụng dependecy injection dễ hàng hơn, và có thể sử dụng được ở tất cả các class chỉ cần 1 lần khai báo duy nhất, mà không cần phải thực hiện khai báo nhiều lần, 

Đây là một vấn đề tương đối khó, để hiểu chi tiết về Service container, các bạn xin đọc bài: https://daylaptrinhphp.com/44-service-container-laravel.html

 

6. Service Provider là gì

 

Service provider là trung tâm của laravel, tất cả quá trình khởi động, thực thi code của core laravel, những ứng dụng của bạn hoặc ứng dụng bên thứ ba đều phải thông qua Service Provider

i tất cả các service provider được đăng kí trong app/config/app.php, Khi cài bất kì ứng dụng nào thông qua composer, các bạn cũng để phải đăng kí các service provider.

Đây là một vấn đề tương đối khó, để hiểu chi tiết về Service Provide , các bạn xin đọc bài: https://daylaptrinhphp.com/45-service-provider-trong-laravel.html

 

7. Queue trong laravel là gì.

 

Queue cho phép đưa những công việc đòi hỏi thời gian nhiều lên hàng đợi, giúp tránh phát sinh lỗi và thiếu sót các tác vụ cần thực hiện, ví dụ: khi export 1 file exel có dung dượng lớn, vấn đề xảy ra là khi client sent request tới sever,và đợi sever phản hồi, nếu như file exel đó quá nặng đòi hỏi thời gian chờ quá lâu, thì lúc đó sẽ xảy ra lỗi connection time out, hay giả sử client request emeil quá nhiều, sẽ dẫn đến tình trạng nghẽn sever email... Queue ra đời để giải quyết các vấn đề đó

Chi tiết về Queue, các bạn xin đọc bài: https://daylaptrinhphp.com/39-queue-trong-laravel.html

 

8. Facade là gì

 

Facade là kiểu design của laravel cho phép truy cập đến các hàm bên trong các service được khai báo trong Service Container bằng cách gọi các hàm static. ví dụ Auth::user(), Auth::check();

Ta có thể tạo facade mới bằng cách tạo một sevirce provider mới và bỏ vào config, tham khảo service provider

Trên đây là những câu hỏi thường gặp khi phỏng vấn lập trình php phần laravel, bài viết sẽ được cập nhật nhiều hơn trong thời gian tới, cảm ơn các bạn đã theo giõi

Xem thêm bài viết  Các câu hỏi phỏng vấn php cơ bản phần 1