Đăng nhập Đăng ký website CÙNG HỢP TÁC 
logo-suc-manh-cong-nghe

Phần 2: PHP Framework cần những chức năng gì?

Một PHP Framework cần đáp ứng các yêu cầu cơ bản sau: Đơn giản, dễ sử dụng, Được tổ chức theo một quy tắc chung, Tốc độ thực thi nhanh, Dễ dàng nâng cấp và mở rộng, Độ bảo mật cao

Xây dựng PHP Framework để hàng triệu người sử dụng và tối ưu hóa tất cả các tính năng với hiệu suất tối đa thì tương đối khó, cần rất nhiều yếu tố, ngoài trình độ lập trình cao, khả năng phân tích hệ thống thì còn cần rất nhiều thời gian để cộng đồng sử dụng, đánh giá, xây dựng tính năng, nâng cấp v.v… nhưng để xây dựng một framework nhỏ gọn, bảo mật, tốc độ nhanh, đáp ứng đầy đủ các yêu cầu của cá nhân với các chức năng cơ bản là điều hoàn toàn khả thi.
Đầu tiên chúng ta cần hiểu rõ cơ chế hoạt động của website, kết quả mà các website trả về là gì để từ đó giải quyết các vấn đề mà một framework phải thực hiện.

Mô hình phân tích HTML và Script của website
Mô hình hoạt động của website cơ bản

Kết quả cuối cùng mà website bình thường trả về là các thẻ Html hoặc Xml, Json v.v… bản chất đều là các dạng text, các thẻ này sẽ được trình duyệt trên máy người dùng phân tích và hiển thị thành các thông tin, hình ảnh mà ta thấy trên màn hình. Cái này rất quan trọng để chúng ta xây dựng cơ chế cache cho framework vì nếu chúng ta cache được website thành file text thì đây là mức độ tối ưu nhất, xếp sau memcache (cũng là dạng text) nhưng lưu trực tiếp trên Ram.
Trong quá trình phát triển, từ nhu cầu thực tế các nhà phát triển phần mềm đưa ra các mô hình khác nhau để giúp tối ưu hóa quá trình xây dựng dự án. Chúng ta cùng tìm hiểu mô hình MVC đang được sử dụng rộng rãi trong phát triển website và được rất nhiều framework sử dụng.
Mô hình MVC là gì và tại sao cần phải sử dụng chúng?
Nếu bạn là người duy nhất làm code và cả thiết kế thì có thể code theo bất kỳ hình thức nào bạn muốn, để code php riêng, html riêng hay nhét cả 2 vào 1 file cũng được. Nhưng nếu làm việc chung với nhóm từ 2 người trở lên bạn sẽ thấy ngay sự khác biệt. Nếu để php và html trong cùng 1 file thì khi bạn đang code thì người khác sẽ phải chờ và ngược lại, sẽ làm chậm tiến độ, nếu tách riêng thì có thể phát triển độc lập, đẩy nhanh dự án, nhưng nếu viết theo nhiều cách khác nhau sẽ không thể kết hợp thành sản phẩm hoàn chỉnh một cách nhanh chóng.
Để giải quyết vấn đề này mô hình MVC (Model – View - Controller) ra đời, mô hình này phân chia chức năng như sau:
Model: có chức năng lưu trữ, truy cập, xử lý các vấn đề liên quan đến cơ sở dữ liệu
View: có chức năng hiển thị giao diện mà người sử dụng nhìn thấy
Controller: có chức năng nhận yêu cầu từ người sử dụng, điều khiển model và view để cho ra kết quả đúng như người sử dụng cần.

Mô hình Model - View - Controller trong PHP Framework

Mô hình Model - View - Controller

Mô hình MVC thực chất là việc tổ chức sao cho mã nguồn được phân chia thành các chức năng riêng biệt, được tổ chức theo một quy tắc chung đảm bảo các thành phần có thể phát triển độc lập nhưng vẫn có quan hệ chặt chẽ với nhau.
Như đã phân tích ở trên việc tách code php và giao diện riêng biệt sẽ giúp tăng tốc quá trình phát triển dự án, nhưng các file giao diện không thể tự thực hiện các thao tác lập trình cơ bản, ví dụ chúng ta có thể copy ra 10 dòng dữ liệu trong file template nhưng không thể lặp dữ liệu lại 10 lần bằng code vì template chỉ là các file text, không có cơ chế lập trình, do đó các Template Engine được sử dụng để giải quyết vấn đề này, có rất nhiều template engine phổ biến như Blade, Smarty, Twig v.v… mỗi loại có một ưu điểm riêng, nếu có thời gian bạn nên tìm hiểu qua các loại trên để có thêm kinh nghiệm, trong loạt bài tiếp theo chúng ta sẽ tự phân tích và xây dựng template engine riêng để sử dụng cho framework của chính mình.

Chúng ta cần 2 yếu tố để xây dựng framework là tổ chức hệ thống theo mô hình Model - View - Controller và xây dựng Template Engine để xử lý các vấn đề chi tiết về giao diện.

Theo mô hình MVC chúng ta sẽ thấy có các nhóm chức năng chính mà framework cần xử lý:
1. Xử lý yêu cầu: là nhóm chức có nhiệm vụ nhận yêu cầu từ người dùng, thực hiện các yêu cầu này và trả về kết quả.
2. Xử lý dữ liệu: là nhóm các chức năng liên quan đến cơ sở dữ liệu, bao gồm kết nối, thêm, xóa, truy vấn, cập nhật v.v…
3. Xử lý giao diện: là nhóm các chức năng dùng để xuất giao diện, bao gồm cả các chức năng của template engine.

Như ta đã biết framework sẽ bao gồm nhiều thư viện được xây dựng và kết nối theo 1 quy tắc chung vì vậy chúng ta cần đặt ra các quy tắc này và tuân thủ khi lập trình. Các chức năng cơ bản về dữ liệu, giao diện sẽ được xây dựng và sau này có thể tái sử dụng trong nhiều dự án.

Chúng ta sẽ tổ chức PHP Framework theo mô hình 6 lớp dưới đây:

Mô hình 6 lớp PHP Framework
Trong đó:
1. Class DFramework: bao gồm tất cả các chức năng liên quan đến website như đăng ký tài khoản, đăng nhập, mua bán sản phẩm v.v…

2. Class DCache: bao gồm tất cả chức năng liên quan đến việc tạo file cache mới, load file cache cũng như xóa các file này khi có cập nhật dữ liệu mới.

3. Class DTemplate: bao gồm tất cả các chức năng liên quan đến vấn đề lập trình cho giao diện như phân tích cú pháp, các cấu trúc điều khiển, vòng lặp v.v…

4. Class DObject: bao gồm tất cả các chức năng liên quan đến việc tạo đối tượng trên giao diện website.

5. Class DDatabase: bao gồm tất cả các chức năng liên quan đến việc xuất, nhập cũng như cập nhật và xóa dữ liệu trên website.

6. Class DSecurity: bao gồm tất cả các chức năng liên quan đến việc khai báo biến, loại dữ liệu được sử dụng và tương tác giữa các trang, cùng các hàm hạn chế việc chèn dữ liệu vào website và database.

Các tin khác
  • CopyRight
  • DMCA.com Protection Status
    Đã thông báo Bộ Công Thương
Chịu trách nhiệm Ông Nguyễn Hữu Dũng
Address: 216/14 Bùi Văn Ba, Phường Tân Thuận Đông, Quận 7, Tp.HCM
Hotline: 0908.622.880 (Mr. Dũng) - Email: info@giacongweb.com
Zalo: 0908 622 880 - Website: https://giacongweb.com

Số Hotline
Zalo