Tìm hiều về php phalcon

  1. Giới thiệu về Phalcon:

Phalcon là 1 framework open source, full stack framework dành cho PHP 5 được viết như một C- extension, được tối ưu hóa để đạt được hiệu suất cao. Bạn sẽ không cần phải học ngôn ngữ C, nó cho phép bạn sử dụng các objects của nó như một “glue components” dựa trên tât các các yêu cầu ứng dụng của bạn. Phalcon không chỉ về hiệu suất , mục đích của nó là làm nó trở lên mạnh mẽ, phong phú các tính năng và dễ sử dụng.

Tại sao?

  • Việc sử dụng các framework trở nên bắt buộc trong việc phát triển mang tính chuyên nghiệp với ngôn ngữ PHP
  • Framework phải có cấu trúc rõ ràng để dễ dàng bảo trì dự án less code nhất và làm công việc trở nên thú vị hơn.
  • Php phalcon giúp tạo các project lớn hơn và ‘ambitious projects’.

Php hoạt động như thế nào?

  • Php có các kiểu dynamic và weak variable type. Mỗi khi một toán hạng binary được tạo ( ví dụ. 2 + “2”), PHP kiểm tra kiểu toán hạng để thực hiện việc chuyển kiểu.
  • Php được thông dịch không phải biên dịch. Điểm bất lợi chính đó là làm giảm hiệu suất.
  • Mỗi lần 1 đoạn script được request nó phải được thông dịch lần đầu tiên.
  • Nếu 1 bytecode cache ( như APC) không được sử dụng, cú pháp kiểm tra được thực hiện cho mỗi một file trong request.

Php thuần ( traditional php) làm việc như thế nào?

  • Php có các kiểu biến dynamic và weak. Disk reading thường khá tốn kém theo nghĩa về hiệu suất, đậc biệt cấu trúc file bao gồm deep folders.
  • Các framework hiện nay sử dụng lazy loading ( autoload) để tăng hiệu suất (cho load và chạy chỉ những đoạn code cần thiết)
  • Một vài các classes chứa những method không được sử dụng trong mỗi lần request nhưng chúng luôn luôn được load, luôn luôn tiêu tốn memory.
  • Continuous loading hay interpreting rất tốn kém và tác động lớn đến hiệu suât. Code framework không thay đổi thường xuyên, và mỗi ứng dụng cũng cần để load và interpret nó mỗi lần request được tạo ra.

PHP C-extension làm việc như thế nào?

  • C extensions được load cùng với PHP mỗi lần web server’s daemon start process
  • Các classes và các functions đươc cung cấp bởi extension sẵn sàng sử dụng cho bất kỳ application nào.
  • Code không cần interpreted bởi vì nó đã được compiled đặc trưng cho mỗi platform và processor.

Phalcon làm việc như thế nào?

  • Các thành phần (components) được liên kết 1 cách lỏng lẻo (loosely couple). Với phalcon bạn thoải mái sử dụng framework, hoặc một vài phần như một glue components.
  • Low-level optimizations cung cấp sự tiêu tốn ít nhất cho ứng dụng dựa trên MVC.
  • Liên kết với databases với hiệu suất cao nhất bằng cách sử dụng C-Language ORM cho PHP.
  • Phalcon cũng trực tiếp truy cập vào cấu trúc tối ưu hoá nội tại của php theo cách đó.

Tại sao bạn cần phalcon?

Các ứng dụng sẽ bị chậm lại do các component/process. Phalcon cung cấp một rất nhanh nhưng tính năng phong phú cho phép các nhà phát triển để tập trung vào ứng dụng của họ / code nhanh hơn. Sau quá trình mã hóa thích hợp, Phalcon có thể cung cấp rất nhiều chức năng / yêu cầu với tiêu thụ ít bộ nhớ và xử lý chu kỳ.

  1. BenchMark Php Phalcon với các framework khác

Chúng ta tạo 1 “Hello World” benchmark để xác định mức tiêu thụ nhỏ nhất của mỗi framework.Ở trong ví dụ này chúng ta chỉ test với một project đơn giản để benchmark khoảng thời gian ít nhất cho mỗi framework để hoàn thành 1 task đơn giản. Mỗi một controller và view được tạo ra cho 1 framework. Controller “say” và một hành động “hello”. Hành động chỉ gửi dữ liệu đến view sẽ hiển thị (“Hello!”). Sử dụng “ab” benchmark tool chúng ta gửi 2000 requests dùng đồng thời 10 connection cho mỗi framework.

Việc benchmark sẽ xác định:

  • Số request trên 1s.
  • Thời gian trên tất cả các concurrent connections.
  • Số file PHP trên mỗi request ( được đo bằng cách sử dụng hàm get_included_files).
  • Bộ nhớ tiêu tốn trên mỗi request ( sử dụng hàm memory_get_usage).

Các framework dùng để benchmark:

  • Yii
  • Symfony
  • Zend Framework
  • Kohana
  • FuelPHP
  • Laravel
  • CodeIgniter

Kết quả:

benchmarkPhalcon-1 BenchmarkPhalcon-2BenchmarkPhalcon-3BenchMarkPhalcon-4

Kết luận:

Như bạn đã thấy phalcon cung cấp hiệu suất nhanh hơn so với tất cả các framework khác ở trên.

  1. Cài Đặt

cd ~/downloads

curl -OL http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz

tar xzvf autoconf-latest.tar.gz

cd autoconf-2.69

./configure ; make ; sudo make install

  • install automake:

cd ~/downloads

curl -OL http://ftpmirror.gnu.org/automake/automake-1.14.tar.gz

tar xzvf automake-1.14.tar.gz

cd automake-1.14

./configure ; make ; sudo make install

  • install libtool:

cd ~/downloads

curl -OL http://ftpmirror.gnu.org/libtool/libtool-2.4.tar.gz

tar xzvf libtool-2.4.tar.gz

cd libtool-2.4

./configure ; make ; sudo make install

  • phalcon extension

export PATH=/Applications/MAMP/bin/php/php5.4.4/bin:$PATH

cd ~/downloads

curl -L -o cphalcon-master.zip https://github.com/phalcon/cphalcon/archive/master.zip

unzip cphalcon-master.zip

cd cphalcon-master/build

sudo ./install

When the phalcon extension has been installed, you enable it in PHP by doing this:

echo "extension=phalcon.so" >> /Applications/MAMP/bin/php/php5.4.4/conf/php.ini

Kết quả:

benchmarkPhalcon-1-300x215.png BenchMarkPhalcon-4-300x209.png BenchmarkPhalcon-3-300x192.png BenchmarkPhalcon-3-300x192.png BenchmarkPhalcon-2-300x215.png

Phalconinstalled

Cám ơn vì đã theo dõi bài viết của tôi ^^!