Tổng quan về cakephp 4

  • August 5, 2022
  • 1055

Cakephp là một MVC framework miễn phí, mã nguồn mở, giúp phát triển và bảo trì ứng dụng một cách dễ dàng. Cakephp framwork xây dựng nhiều công cụ tự động giúp các lập trình viên xây dựng các ứng dụng web nhanh chóng, đơn giản và dễ dàng.

Yêu cầu bắt buộc khi dùng cakephp 4

  • Cakephp yêu cầu HTTP Server như: Apache, Nginx.
  • Phiên bản PHP lớn hơn 7.4.
  • Mbstring PHP extension
  • Intl PHP extension
  • SimpleXML PHP extension
  • PDO PHP extension

Ưu điểm của cakephp

  • Tự động matching route, chỉ cần tạo file đúng convetions không cần phải khai báo route
  • Tạo Controller, Model, View, Test... tự động với cakephp/bake
  • CURD dữ liệu dễ dàng
  • Tích hợp sẵn các packagist check conversion code: phpstan, phpcs
  • Tích hợp sẵn mobile detect, dễ dàng detect thiết bị của người dùng
  • Thân thiện với SEO
  • Hỗ trợ viết unit test dễ ràng

CakePHP Request Cycle

Cùng tìm hiểu request lifecycle trong cakephp qua hình ảnh bên dưới
Cake request lifecyle

Khi người dùng truy cập vào một trang hoặc yêu cầu một tài nguyên của ứng dụng, request sẽ theo thứ tự sau:

  1. Websever sẽ điều hướng request đến webroot/index.php
  2. Kiểm tra xem server có thoả mãn các yêu cầu bắt buộc khi dùng cakephp không(phiên bản php, extentions...), Autoload các thư viện được install, autoload thông qua composer
  3. Load Application src/Application.php, Load các config của ứng dụng config/bootstrap.php, liên kết với HttpServer
  4. Middleware được khởi tạo, các request sẽ được verify qua middleware nếu hợp lệ sẽ chuyển đến router
  5. Router điều hướng đến controller, action tương ứng. Nếu khai báo route thì ưu tiên lấy từ khai báo, không khai báo router sẽ được matching tự động đến controller, action tương ứng. Router được khai báo trong file config/routers.php.
  6. Controller xử lý request trong acction tương ứng, tương tác với modles và components. Controller sẽ lấy dữ liệu thông qua models, Models lấy các logic dùng chung thông qua Behavior. Components là các xử lý logic được dùng chung cho nhiều controller.
  7. Controller xứ lý dữ liệu, trả dữ liệu cho view
  8. View sử dụng các Helpers và Cells để hiện thị dữ liệu
  9. Response được verify lại thông qua middleware trước khi trả về
  10. HttpServer trả về response cho máy chủ
  11. Người dùng nhận được phản hồi từ yêu cầu của họ

Folder Structure

cakephp folder
Giải thích cấu trúc thư mục trong cakephp

Stt Folder Description
1 bin Nơi chứa các Cake console executables
2 config Nơi chứa các config của hệ thống: bootstrapping, database, log, core config, router...
3 logs Nơi chứa các file log lỗi của hệ thống
4 plugins Nơi chứa các plugins của bạn
5 resources Nơi chứa các file đa ngôn ngữ
6 src Trái tim của cakephp, là nơi chứa Controller, Modle, View, Console... Toàn bộ các năng của ứng được xử lý tại đây
7 template Nơi chứa các file view: elements, error pages, layouts, and view template files.
8 tests Nơi chứa test của ứng dụng.
9 tmp Nơi chứa các dữ liệu tạm thời
10 vendor Nơi chứa core của cakephp và các other application dependencies
11 webroot Nơi chứa tất cả các file bạn muốn truy cập từ bên ngoài

Ngoài ra khi làm việc với cakephp framework bạn cần nắm rõ các quy tắc đặt tên Controller, Action, View, Table, Model để không phải cấu hình lại ứng dụng. Bạn chỉ cần đặt tên đúng quy tắc, Cakephp sẽ tự động cấu hình Router matching đúng Controller, Action, View... tương ứng cho bạn. Bài viết tiếp theo chúng ta sẽ cùng tìm hiểu về cakephp conventions nhé.