+2

Tìm hiểu về Phalcon Framework

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

  1. 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
  2. Phalcon 2.0.10 Documentation: https://docs.phalconphp.com/en/latest/index.html
  3. 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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí