Tìm hiểu về Phalcon Framework
Bài đăng này đã không được cập nhật trong 3 năm
Giới thiệu
Ngày nay các ứng dụng Web đã trở nên phức tạp hơn, việc xây dựng chúng từ đầu sẽ rất mất thời gian và công sức. Bởi thế, rất nhiều PHP Framework được tạo ra với mục đích là thúc đẩy nhanh quá trình phát triển ứng dụng, giúp bạn tiết kiệm thời gian, tăng sự ổn định cho ứng dụng và giảm thiểu số lần viết mã cho lập trình viên. Từ các Frameworks đầy đủ các thành phần (Full-stack Frameworks) như: Laravel, Symphony, CodeIgniter… đến các Framework nhỏ (Micro Frameworks) chỉ dùng để viết các ứng dụng nhỏ và các API như Slim, Medoo… tất cả các Framework đều được giới thiệu như là dễ sử dụng, tốc độ cao, hoặc được tài liệu hóa tốt. Một trong số đó là Phalcon.
Phalcon là Framework mã nguồn mở, full-stack và được viết như là C-extension. Bạn không cần phải học ngôn ngữ lập trình C bởi các chức năng có sẵn đã được biểu diễn dưới dạng các lớp PHP để có thể sử dụng cho bất kì ứng dụng nào. Phalcon không chỉ giúp tăng tốc độ thực thi mà còn làm giảm việc sử dụng tài nguyên. Nó cũng được đóng gói nhiều tính năng như auto-loader, query language, template engine… cùng với sự phong phú về các ví dụ mẫu và tài liệu hướng dẫn rõ ràng giúp bạn tiếp cận và học tập một cách nhanh chóng, thuận tiện.
So sánh với các Framework khác
Để thấy những điểm khác biệt của Framework Phalcon, chúng ta cùng xem những bảng so sánh giữa chúng với các Framework khác đang được ưa chuộng hiện nay như Laravel hay Codelgniter.
Điều kiện so sánh | Phalcon | Laravel | CodeIgniter |
---|---|---|---|
Category | App Development | Web Application Framework | Web Application Framework |
Programming language | C, Zephir, PHP | PHP | PHP |
Database | MySQL, PostgreSQL, SQLite, MongoDB, Oracle, MariaDB, MemcacheDB | SQLite, MySQL, PostgreSQL, Redis, Microsoft BI, MongoDB | JDBC Compatible, orientdb, IBM DB2, MongoDB, MySQL, PostgreSQL, Microsoft SQL Server 2008 R2, CUBRID, Microsoft BI, Microsoft SQL Server 2005, Oracle. |
Database Model | Relational, NoSQL, Object-oriented, Document-oriented, Multidimensional | Object-oriented, NoSQL | Hybrid Object-relational |
Template language | Volt, PHP | Blade Template Engine Blade | PHP Proprietary |
Target audience | App developer, Cloud computing, Distributed Systems, Web Development | Web Development | Government, SMB, Web Development, Beginer, Enterprise, Employees, Customers, Vendors |
Design pattern | Dependency injection, MVC, HMVC, Active-Record, Event-Driven, Obsever, Chain of responsibility | Active-Record, MVC, Dependency injection, Obsever, Singleton, Event-Driven, MTV, Factory, RESTful, Façade | Active-Record, MVC |
Difficulty level | Master, Advanced | Master, Advanced, Intermediate, Beginner | Beginer |
Backend | C | PHP | PHP |
Library file size | ~4MB | ~17MB | ~4.1MB |
Trên đây chỉ là một số điểm khác biệt cơ bản của Phalcon Framework so với 2 Framework còn lại là Laravel. Qua đó ta cũng thấy được ưu điểm của Phalcon đó là: thư viện file nhỏ gọn, hỗ trợ nhiều mô hình database và design partern, hỗ trợ nhiều ngôn ngữ lập trình, sử dụng được với nhiều đối tượng mục tiêu… Bên cạnh đấy, cấp độ khó của Phalcon cũng cao hơn 2 Framework còn lại, không dành cho những người mới bắt đầu mà hướng đến những người đã có kinh nghiệm sử dụng Framework khác trước đó.
Lý do lựa chọn Phalcon
Chúng ta có rất nhiều lý do cho việc lựa chọn Framework để viết một ứng dụng Web, nhưng dưới đây là vài lý do tiêu biểu để bạn chọn Framework Phalcon:
1. Dễ cài đặt, cấu trúc thư mục đơn giản dễ hiểu
Do Phalcon được viết bằng ngôn ngữ C nên chỉ cần tích hợp Phalcon vào dự án như là một phần mở rộng kèm theo. Dung lượng của Phalcon rất nhỏ gọn (chỉ khoảng 4MB) nên download dễ dàng, không chỉ vậy, việc cài đặt cũng rất đơn giản, chỉ cần làm theo hướng dẫn trong tài liệu về Phalcon là bạn hoàn toàn có thể sử dụng được. Ngoài ra, cấu trúc thư mục sau khi cài đặt của Phalcon cũng rất dễ hiểu và dễ điều chỉnh. Đây là một điểm cộng lớn cho những lập trình viên lần đầu tiếp cận với Framework này.
2. Tốc độ và hiệu suất cao
Do Phalcon được viết dưới dạng PHP module nên toàn bộ Framework đều được nạp sẵn vào trong RAM khi hệ thống khởi động, loại bỏ hoàn toàn quá trình đọc Framework từ ổ đĩa cứng mỗi khi có request tới. Cũng bởi Phalcon được viết bằng ngôn ngữ C, ngôn ngữ gần với ngôn ngữ hệ thống nhất nên tốc độc load trang rất nhanh mang lại cảm giác dễ chịu cho người sử dụng.
Bảng trên cho ta thấy được số lượng request trong 1s mà Phalcon chịu tải được là cao nhất, gấp đôi Slim và gấp nhiều lần các Framework phổ biến khác như Laravel, Symfony…
3. Phalcon đóng gói rất nhiều tính năng tiện ích hỗ trợ người lập trình
Người lập trình dễ dàng thao tác với dữ liệu qua Model ORM, template engine hoạt động tốt giúp mã nguồn đẹp hơn, template Volt giúp mã nguồn trong sáng, dễ lập trình, các thành phần kiểm tra (validation components)… Điểm quan trọng nhất là hệ thống tài liệu Phalcon được cung cấp đầy đủ và rõ ràng cho người mới tiếp cận.
Cài đặt, struture của Phalcon
Download và cài đặt Phalcon Framework
Download tại đây
Xây dựng cấu trúc Phalcon
- Download Phalcon Developer Tools tại đường link https://github.com/phalcon/phalcon-devtools. Phalcon Developer Tools là một bộ các script rất hữu ích để tạo ra bộ khung cấu trúc cho Phalcon. Các thành phần cốt lõi của ứng dụng có thể được tạo ra với một lệnh đơn giản, cho phép bạn dễ dàng phát triển ứng dụng.
- Giải nén, copy vào thư mục htdocs
- Chạy lệnh:
phalcon project project_name
- Sau khi tạo xong thì cấu trúc thư mục sẽ hiển thị như sau:
Một project sẽ chứa 2 thư mục lớn là app và public. Thư mục app chứa code xử lý của toàn bộ project. Thư mục public chứa các file css, js, img… là các file nhúng từ bên ngoài vào. Khi lần đầu tiên chạy vào ứng dụng, file index.php luôn được chạy đầu tiên, file này nằm trong thư mục public. Trong thư mục app:
- app/config: chứa file cấu hình; file loader để nạp các controller, model cùng các thư mục khác; file services để khởi tạo các dịch vụ mà ta đăng kí cho ứng dụng.
- app/controllers: chứa các controllers điều hướng của ứng dụng.
- app/models: chứa các models thao tác với cơ sở dữ liệu.
- app/views: chứa các views là mã code HTML hiển thị cho người dùng.
Cấu trúc của Phalcon có thể thay đổi được tùy theo ý của lập trình viên. Bạn cũng có thể thêm các thư mục plugins
để sử dụng file SecurityPlugins (để bảo vệ phần Backend của hệ thống, tránh những sự truy cập ngoài ý muốn và giúp phân quyền cho người dùng một cách dễ dàng) hay library
để chứa các file dùng chung cho hệ thống để giúp hạn chế việc dư thừa mã code, ngoài ra các file đó có thể được sử dụng ở các hệ thống khác.
Đây là một số kiến thức mình tìm hiểu được trong thời gian ngắn, nếu có gì sai sót mong các bạn góp ý! Mình xin kết thúc bài viết ở đây (thanks)
Tham khảo
- 10 Framework PHP tốt nhất dành cho lập trình viên: https://techmaster.vn/posts/33597/hoc-lap-trinh-web-php-tot-nhat-bang-framework
- Phalcon 2.0.10 Documentation: https://docs.phalconphp.com/en/latest/index.html
- Giới thiệu performance benchmark của PHP Frameworks: http://expressmagazine.net/posts/view/3489/gioi-thieu-performance-benchmark-cua-php-frameworks
All rights reserved