PHP Framework là gì?
Khi bạn xây dựng một website thì đòi hỏi bạn phải thực hiện qua nhiều công đoạn và sử dụng nhiều thư viện khác nhau, mỗi công đoạn như vậy sẽ tốn khá nhiều thời gian của bạn, hoặc khi bạn viết ra những thư viện xử lý cho dự án cũng tốn không kém thời gian. Đấy chỉ là vấn đề thời gian, ta còn một vấn đề khác nữa đó là team work. Khi một dự án được xây dựng với nhiều người thì đòi hỏi phải có những chuẩn chung sẽ giúp cho dự án dễ nâng cấp và bảo trì, cá thành viên có thể đọc code lẫn nhau. Vậy để giải quyết vấn đề này thì ta nên sử dụng Framework.
Và bây giờ ta tìm hiểu Framework là gì nhé.
1. PHP Famework là gì?
Framework dịch theo tiếng anh có nghĩa là khuôn khổ, còn xét theo mặt lập trình PHP thì Framework là một bộ thư viện được tổ chức theo một mô hình sẵn và tích hợp nhiều thư viện sẵn giúp lập trình viên tiết kiệm thời gian, đồng thời giải quyết vấn đề tạo ra chuẩn chung cho các lập trình viên khi làm việc nhóm (team work). Hiện nay có khá nhiều Framework được xây dựng từ PHP như Codeigniter, CakePHP, Yii, Phalcon, Zend. Mỗi Framework có những điểm mạnh yếu khác nhau và tùy vào sở thích, nhu cầu của công ty mà ta chọn để làm dự án.
Xét về mặt lập trình PHP thì trong một website thì thông thường sẽ có những chức năng như sau:
Bài viết này được đăng tại [free tuts .net]
- Xử lý menu
- Upload file
- Rewrite URL
- Tạo thumb
- Security
- ...
Tất cả các module đã liệt kê ở trên hầu hết đã được tích hợp sẵn trong các Framework, vì vậy việc xây dựng website trên nền tảng Framework là rất cần thiết và khuyến khích.
2. Lợi ích khi sử dụng Framework
Sau đây là các lợi ích khi chúng ta sử dụng PHP Framework để xây dựng cho dự án.
Khi sử dụng Framework bạn sẽ tiết kiệm thời gian lập trình cho dự án, đưa ra một chuẩn chung cho team work nên khi làm việc trong các công ty sẽ rất hữu ích.
Bạn sẽ không mất nhiều thời gian để tạo ra một bộ khung cho riêng mình vì đã có cộng đồng lo cho bạn, bạn sẽ không tốn nhiều thời gian để nghiên cứu thêm các thư viện vì nó đã được cộng đồng nghiên cứu giúp bạn. Ví dụ dự án của bạn đang sử dụng PHP5 và bạn muốn chuyển sang PHP7 thì coi như là code lại 100%, nhưng nếu bạn sử dụng Framework thì người ta sẽ hướng dẫn bạn từng bước để nâng cấp.
Một vấn đề khác nữa đó là tính bảo mật. Khi bạn làm việc một mình thì bạn có đảm bảo là bạn code bảo mật hay không? Tôi tin chắc là ko ai dám tự tin cả vì đây là vấn đề rất nan giải đòi hỏi người lập trình viên phải có kiến thức thâm hậu :) Nhưng khi bạn sử dụng Framework thì họ đã giải quyết vấn đề này cho bạn, vấn đề còn lại của bạn là đọc tài liệu cách sử dụng mà thôi.
3. Nên chọn PHP Framework nào?
Đây là vấn đề gây ra nhiều tranh cãi vì ai cũng tôn sùng Framework mà mình đang sử dụng :) Tuy nhiên mình cũng xin đánh giá một chút xíu về các Framework đình đám hiện nay và từ đó tùy vào nhu cầu mà bạn chọn framework nào.
Codeigniter
Trang chủ: http://codeigniter.com/
Framework này chạy tương đối nhanh bởi nó rất đơn giản, nó rất đình đám ở thời năm 2013 - 2015 bởi sự đơn giản va dễ sử dụng. Tính đến thời điểm này là 2016 thì vẫn có rất nhiều người sử dụng Framework này để làm dự án. Đây là một Framework sử dụng mô hình MVC, có active record và hiện tại version 3x đã hỗ trợ composer, dễ học và một bạn newbie biết chút đỉnh PHP nâng cao là có thể học được.
Nếu bạn là người mới bắt đầu học Framework và muốn trải nghiệm thì đây là một Framework đáng giá cho bạn lựa chọn.
Laravel
Trang chủ: https://laravel.com/
Framework này nổi từ năm 2014 cho tới bây giờ. Laravel được đánh giá là một framework thay đổi version nhanh nhất, tuy nhiên phía bên chủ xị cam kết là không thay đổi cấu trúc nên bạn hoàn toàn yên tâm khi sử dụng :) Cũng như các framework khác, Laravel sử dụng mô hình MVC, có active record và hỗ trợ composer + nhiều thư viện kèm theo, chính vì sự tích hợp quá nhiều thư viện như vậy nên Laravel chạy tương đối chậm, chậm hơn rất nhiều so với Codeigniter.
Đây cũng là một sự lựa chọn cho người mới tìm hiểu FW.
Phalcon
Trang chủ: https://phalconphp.com
Một framework mà mình biết đến vào năm 2015, đây là một framework có tốc độ xử lý tuyệt vời bởi nó được xây dựng giống như một thư viện dll của PHP, nghĩa là bạn sẽ download một file dll và install vào hệ thống module của PHP chứ không phải download một đống files rồi sử dụng ngay như các Framework khác.
Chính vì nó là một file dll nên bạn sẽ phải tự mình xây dựng cấu trúc folder đấy nhé, tuy nhiên nó vẫn có tài liệu hướng dẫn bạn sử dụng chuẩn của nó.
Zend
Trang chủ: http://zend.com/
Một Framework được đánh giá là khó nhất từ xưa đến nay, đây là framework được xây dựng bởi chính ông chủ PHP nên nó sư dụng nhiều kiến thức lập trình mới, vì vậy newbie không nên đụng vào framework này.
Zend chạy tương đối chậm, có thể nói là chậm nhất trong các Framework, vì vậy đa số người ta vẫn thích sử dụng các framework phía trên cho dự án.
Yii
Trang chủ: http://www.yiiframework.com/
Yi được gọi là hàng tàu bởi nó xuất thân bởi một ông Tàu thì phải :) Yii thì mình chưa sử dụng qua nên cũng không dám đánh giá nó, nếu bạn muốn tìm hiểu thì có thể lên trang chủ đọc nhé.
CakePHP
Trang chủ: http://cakephp.org/
Bạn lên trang chủ để đọc thêm thông tin nhé.
4. Lời kết
Trên là những phân tích của mình danh cho các PHP Frameworks hiện nay, hy vọng qua bài tìm hiểu PHP framework là gì này sẽ giải đáp được phần nào thắc mắc của bạn.
À có một điều nữa là bạn phải phân biệt rõ giữa Framework và CMS nhé, đây là hai khái niệm hoàn toàn khác nhau nhưng vẫn có nhiều bạn không phân biệt được. CMS là một hệ thống quản trị nội dung còn framework là một khuôn khổ, nó khác nhau hoàn toàn.