Hướng dẫn CakePHP cho người mới bắt đầu: CakePHP Framework là gì?
⚡ Tóm tắt thông minh
Hướng dẫn CakePHP này giới thiệu về framework PHP mã nguồn mở用于 phát triển ứng dụng web nhanh chóng dựa trên mô hình MVC. Hướng dẫn này giải thích CakePHP là gì, tại sao các nhóm chọn nó, cách cài đặt, cấu trúc thư mục và cấu hình, quy ước đặt tên và cách mô hình Model-View-Controller (MVC) điều khiển một ứng dụng CakePHP.
CakePHP là gì?
CakePHP CakePHP là một framework mã nguồn mở giúp phát triển và bảo trì nhanh chóng các ứng dụng web được xây dựng bằng PHP. Nó dựa trên khái niệm kiến trúc MVC, giúp xây dựng các ứng dụng web PHP một cách dễ dàng và đơn giản với ít mã hơn. CakePHP cũng giúp bạn tách biệt logic nghiệp vụ khỏi lớp dữ liệu và lớp trình bày.
Tại sao nên sử dụng Khung CakePHP?
Dưới đây là những lợi ích/ưu điểm chính khi sử dụng framework CakePHP:
- CakePHP hiện là một trong những nền tảng phát triển web nhanh nhất.
- CakePHP cho phép các nhà phát triển giành được quyền kiểm soát nâng cao đối với cơ sở dữ liệu và các truy vấn SQL.
- Nó giúp người dùng nhanh chóng phát triển các ứng dụng web mạnh mẽ mà không làm mất đi tính linh hoạt của môi trường.
- Hỗ trợ cho PostgreSQL, SQLite, MySQLvà PEAR-DB cho ADODB, một cơ sở dữ liệu tuyệt đối.tracthư viện tion.
- Tạo điều kiện thuận lợi cho việc tối ưu hóa công cụ tìm kiếm. URLs.
- Ứng dụng cung cấp các tính năng như xác thực dữ liệu đầu vào và công cụ làm sạch dữ liệu, giúp đảm bảo an toàn.
- Tạo mẫu với cú pháp PHP quen thuộc.
Hướng dẫn cài đặt CakePHP
Cách được khuyến nghị để cài đặt CakePHP là sử dụng Composer, trình quản lý phụ thuộc của PHP. Sau khi cài đặt Composer, hãy chạy lệnh dưới đây để tạo một khung dự án mới.
composer create-project --prefer-dist cakephp/app:~5.0 my_app
Lệnh này sẽ tải xuống CakePHP và các thư viện phụ thuộc vào một thư mục có tên là my_app. Sau đó, bạn có thể khởi động máy chủ tích hợp sẵn bằng lệnh sau: bin/cake server và mở http://localhost:8765 trong trình duyệt của bạn. Lưu ý rằng CakePHP 5 yêu cầu PHP 8.1 trở lên.
Lịch sử của CakePHP
Trong hướng dẫn CakePHP này, chúng ta sẽ tìm hiểu về lịch sử của framework CakePHP:
| Năm | Milestone |
|---|---|
| 2005 | CakePHP được phát triển bởi Michal Tatarynowicz vào ngày 15 tháng 4 năm 2005. |
| 2005 | CakePHP đã phát hành nó theo giấy phép MIT và mở nó cho cộng đồng các nhà phát triển. |
| 2005 | Larry E Masters đảm nhận vai trò nhà phát triển chính. |
| 2006 | Phiên bản 1.0 đã được phát hành. |
| 2011 | Phiên bản 2 đã được phát hành. |
| 2014 | Phiên bản 3 đã được phát hành, một bản viết lại hoàn toàn so với các phiên bản trước đó. |
| 2016 | Phiên bản 3.3 của CakePHP đã được phát hành với nhiều tính năng nâng cao. |
| 2019 | Phiên bản 4.0 đã được phát hành, hiện đại hóa khung phần mềm. |
| 2023 | CakePHP 5.0 đã được phát hành, yêu cầu PHP 8.1 trở lên. Phiên bản hiện tại vào năm 2026 là CakePHP 5.3.x. |
Tính năng của CakePHP
Dưới đây là các tính năng quan trọng của CakePHP.
- Cộng đồng năng động, thân thiện
- Kiến trúc MVC
- Xác thực tích hợp
- Hoạt động với bất kỳ thư mục trang web nào, có thể không cần hoặc chỉ cần một số cấu hình Apache.
- Công cụ tạo mẫu
- Các thao tác bộ nhớ đệm
- Tương tác cơ sở dữ liệu CRUD dễ dàng
- Xử lý các thành phần như Email, Cookie, Bảo mật, Phiên và Yêu cầu
- Xem các công cụ hỗ trợ cho JavaScript, Ajaxcác biểu mẫu HTML, và nhiều hơn nữa
CakePHP- Cấu trúc thư mục
Bây giờ trong hướng dẫn về khung CakePHP này, chúng ta sẽ tìm hiểu về cấu trúc thư mục CakePHP.
Dưới đây là cấu trúc thư mục của CakePHP:
| Thư mục | Mô tả Chi tiết |
|---|---|
| Kiểm tra | Thư mục này chứa các trường hợp thử nghiệm cho ứng dụng của bạn. |
| tmp | Thư mục tmp lưu trữ dữ liệu tạm thời. |
| Nhà cung cấp | Thư mục này là nơi cài đặt CakePHP và các thư viện phụ thuộc khác của ứng dụng. |
| Webroot | Thư mục gốc của web lưu trữ tất cả các tệp mà bạn muốn cho phép truy cập công khai. |
| Bin | Thư mục bin chứa các tệp thực thi của bảng điều khiển Cake. |
| Logs | Nó chứa các tập tin nhật ký của bạn, tùy thuộc vào cấu hình nhật ký của bạn. |
| Config | Thư mục config lưu trữ các tệp cấu hình mà CakePHP sử dụng. |
| bổ sung | Đây là nơi lưu trữ các plugin mà ứng dụng của bạn sử dụng. |
| Sr. | Nó chứa mã nguồn của ứng dụng, chẳng hạn như bộ điều khiển, thực thể và hành vi. Thư mục Locale lưu trữ các tệp chuỗi để quốc tế hóa, và thư mục Model chứa các bảng, thực thể và hành vi của ứng dụng. |
Cấu hình của CakePHP
CakePHP đi kèm với một tệp cấu hình theo mặc định. Nó cũng cho phép bạn sửa đổi nó theo yêu cầu của bạn. Có một thư mục tên là “config” được cung cấp cho mục đích này.
| Tên biến | Mô tả Chi tiết |
|---|---|
| Gỡ lỗi | Cho phép bạn thay đổi đầu ra gỡ lỗi CakePHP. |
| Không gian tên ứng dụng | Giúp bạn tìm các lớp học ứng dụng. |
| Url ứng dụng.base | Bỏ nhận xét từ khóa này khi bạn không muốn sử dụng mod_rewrite của Apache với CakePHP. |
| Mã hóa ứng dụng | Cho phép bạn xác định phương thức mã hóa mà ứng dụng của bạn sử dụng. |
| Ứng dụng.base | Đây là thư mục gốc chứa ứng dụng. Nếu là false, hệ thống sẽ tự động phát hiện. |
| App.fullBaseUrl | Tên miền đủ điều kiện. |
| Ứng dụng.webroot | Đây là thư mục gốc của trang web. |
| App.wwwRoot | Đường dẫn tập tin đến webroot. |
| App.jsBaseUrl | Đường dẫn đến thư mục js công khai. |
| Đường dẫn ứng dụng | Định cấu hình đường dẫn cho các tài nguyên không dựa trên lớp. |
| App.cssBaseUrl | Đây là đường dẫn web đến thư mục css công khai nằm trong thư mục gốc của web. |
| Bảo mật.salt | Nó là một chuỗi ngẫu nhiên được sử dụng trong băm. |
| Nội dung.timestamp | Biến này sẽ thêm dấu thời gian khi sử dụng các hàm hỗ trợ phù hợp. |
Quy ước đặt tên Cake- PHP
CakePHP tuân theo nguyên tắc "quy ước hơn cấu hình". Quy ước đặt tên cho phép bạn tổ chức hoạt động của ứng dụng web. Theo phương pháp này, nhiều hơn một từ trong tên phải được phân tách bằng dấu gạch dưới ("_") khi đặt tên tệp, và sử dụng kiểu chữ hoa đầu mỗi từ (camel case) khi đặt tên lớp.
Các thành phần MVC phải tuân theo cú pháp được đưa ra bên dưới:
| File Name | Tên lớp | Tên lớp cơ sở | Địa điểm | |
|---|---|---|---|---|
| Mẫu | Tên bảng ở dạng số ít, có đuôi .php, ví dụ: order.php | Tên tệp được viết theo kiểu camel case, ví dụ: Order | Mô hình ứng dụng | /ứng dụng/mô hình |
| Người điều khiển | Tệp tablename_controller có đuôi mở rộng .php, ví dụ: orders_controller.php | Tên bảng được thêm hậu tố Controller, ví dụ: OrdersController | Trình điều khiển ứng dụng | /ứng dụng/bộ điều khiển |
| Xem | Tên hành động trong bộ điều khiển có phần mở rộng .ctp, ví dụ: add.ctp | Không có lớp nào; một view chứa các thẻ HTML và mã PHP. | /app/views/tên bộ điều khiển |
Cấu hình cơ sở dữ liệu
CakePHP cho phép bạn cấu hình cơ sở dữ liệu trong... config/app.php Tệp này cung cấp kết nối mặc định với các tham số được cung cấp sẵn mà bạn có thể sửa đổi theo ý muốn.
Các thông số quan trọng được đưa ra dưới đây:
| Tham số | Mô tả Chi tiết |
|---|---|
| cổng (tùy chọn) | Cổng TCP hoặc ổ cắm Unix được sử dụng để kết nối với máy chủ. |
| Múi giờ | Múi giờ của máy chủ cần đặt. |
| Schema | Nó giúp bạn chỉ định lược đồ nào bạn có thể sử dụng. |
| unix_socket | Được các trình điều khiển sử dụng để kết nối thông qua các tệp socket Unix. |
| ssl_key | Đây là đường dẫn đến tệp khóa SSL. |
| ssl_cert | Đây là đường dẫn đến tệp chứng chỉ SSL. |
| ssl_ca | Đây là đường dẫn đến tệp tin của cơ quan cấp chứng chỉ SSL. |
| Khúc gỗ | Thuật ngữ này giúp bạn thực hiện ghi nhật ký truy vấn. |
| Trong đó | Danh sách các truy vấn sẽ được gửi đến máy chủ cơ sở dữ liệu bất cứ khi nào kết nối được tạo. |
| Mã định danh báo giá | Đặt thành true nếu bạn muốn sử dụng các từ khóa dành riêng hoặc ký tự đặc biệt. |
MVC hoạt động như thế nào trong CakePHP?
Bây giờ, chúng ta sẽ tìm hiểu cách hoạt động của mô hình MVC trong CakePHP trong hướng dẫn về framework CakePHP này.
Đây là một cách tiếp cận năng động để xây dựng cơ chế chính của một ứng dụng web. Mô hình, giao diện người dùng và bộ điều khiển được tách biệt với nhau.

CakePHP chia các thao tác thành ba phần:
- Mô hình: Được sử dụng cho tất cả các tương tác cơ sở dữ liệu.
- Lượt xem: Được sử dụng cho tất cả đầu ra và màn hình.
- Bộ điều khiển: Được sử dụng để điều khiển luồng hoạt động của ứng dụng.
Dưới đây là các bước để sử dụng kiến trúc MVC trong CakePHP:
Bước 1) Khách hàng hoặc người dùng tương tác với giao diện.
Bước 2) Màn hình này cảnh báo bộ điều khiển về sự kiện cụ thể.
Bước 3) Bộ điều khiển gửi yêu cầu cơ sở dữ liệu đến mô hình và cập nhật mô hình.
Bước 4) Mô hình cảnh báo cho người xem rằng nó đã thay đổi.
Bước 5) Giao diện người dùng nhận dữ liệu từ mô hình và tự cập nhật theo dữ liệu nhận được.
Tại sao nên sử dụng MVC?
- CakePHP MVC giúp bạn tách biệt logic nghiệp vụ khỏi phần trình bày và truy xuất dữ liệu.
- Trang web được chia thành các phần logic mà bạn có thể quản lý bằng bộ điều khiển cụ thể.
- Khi kiểm thử và gỡ lỗi ứng dụng, bất kỳ nhà phát triển nào cũng có thể tìm và sửa lỗi mà không cần có đầy đủ thông tin chi tiết về mã nguồn.
Nhược điểm của việc sử dụng khung CakePHP
- Tài liệu hướng dẫn của CakePHP chưa được đầy đủ và toàn diện như mong đợi.
- Để sử dụng CakePHP, nhà phát triển cần cập nhật các tuyến đường mặc định để tạo ra giao diện đẹp mắt. URLĐiều này đòi hỏi nhiều công sức hơn so với một số framework PHP khác.
- CakePHP sử dụng định tuyến một chiều, khác với các framework khác.
- Học lập trình PHP Khung lập trình không phải lúc nào cũng dễ sử dụng đối với người mới bắt đầu.
- Định tuyến một chiều là một nhược điểm khác khi so sánh với các framework như Ruby on Rails.

