Hướng dẫn toàn tập Phalcon cho người mới bắt đầu
Trong bài hướng dẫn Phalcon này, chúng tôi sẽ giới thiệu framework này và cho bạn biết từng bước để tạo dự án đầu tiên của bạn. Tất cả các gói web hosting của chúng tôi đều đã có sẵn Phalcon làm mặc định, vì vậy bạn có thể thử dùng framework này ngay! Ở cuối bài hướng dẫn Phalcon, bạn sẽ làm được một form mẫu chứa các thông tin người dùng trong MySQL database.
Giới thiệu
Phalcon là một PHP framework hiệu năng cao dựa trên kiến trúc model-view-controller (MVC) architecture. Nó được ra mắt từ năm 2012 và từ đó luôn là mã nguồn mở. Mấu chốt của nó được viết dựa trên ngôn ngữ C và Zephir. Phalcon nổi tiếng vì là framework đầu tiên triên khai object-relational mapping (ORM) trong C.
Phalcon rất dễ tùy chỉnh nhờ vào Zephir, một ngôn ngữ lập trình cao cấp. Nhưng đừng sợ, vì Phalcon có thể được dùng để phát triển ứng dụng PHP, mà không cần bạn có kiến thức về ngôn ngữ lập trình C. Hãy bắt đầu bài hướng dẫn dẫn sử dụng Phalcon bằng cách so sánh nó với các PHP frameworks khác.
Phalcon – P for Performance
Mục đích đằng sau của việc phát triển Phalcon là tạo ra một extension cho web server có thể tăng thời gian thực thi, giảm việc sử dụng tài nguyên, và đảm bảo việc xử lý request tốt hơn so với các PHP frameworks khác. Ưu điểm lớn nhất của Phalcon là khả năng tận dụng bộ nhớ tạm hiệu quả. Việc này sẽ giúp cho thông tin không cần phải lưu trữ ở nơi khác như hầu hết các PHP frameworks khác cần sử dụng file read và file stats để lưu thông tin khiến cho việc vận hành hệ thống nặng nề hơn. Phalcon nhờ vậy đã tối ưu hiệu năng và cải thiện tính hiệu quả.
Hãy xem kết quả benchmark:
Vì Phalcon không cần core file, bộ nhớ của mỗi request cần dùng ít hơn nhiều so với các PHP frameworks khác.
Chúng ta cũng có thể thấy Phal có thể sử lý 1400 request mỗi giây, trong khi đó những framework khác gặp nhiều khó khăn hơn.
Ít file trên mỗi request có nghĩa là sẽ xử lý nhanh hơn và Phalcon làm được một điều rất ấn tượng ở bài test này.
Phalcon framework có thể hoàn tất 1000 requests với tốc độ ánh sáng. Trong khi những framework khác cũng mất một lúc lâu sau mới xong với cùng số lượng request.
So sánh giữa Phalcon và Laravel
Mặc dù Laravel luôn được xem là lựa chọn hàng đầu cho PHP framework, nó không thể so sánh được với Phalcon về mặc tốc độ, khả năng mở rộng và hiệu năng. Tuy nhiên Laravel cũng rất đơn giản để học và dễ debugging lỗi. Mặc dù bạn cần có kiến thức về C để debug code trong phalcon. Một điểm khác biệt nữa là Laravel có thể cài trên bất kỳ server nào, Phalcon cần quyền root để cài lên server.
So sánh giữa Phalcon và CodeIgniter
Tại thời điểm ban đầu khi chưa có PHP framework nào, chúng ta chỉ có CodeIgniter. Mặc dù nó đã tồn tại rất lâu, việc phát triển đã chậm lại trong những năm gần đây. Cả Phalcon và CodeIgniter đều có những tính năng hay, như documentation, và có một cộng đồng người dùng lớn. Nhưng Phalcon thì nhanh hơn nhiều, còn CodeIgniter thì mạnh về việc tương thích nhiều phần cứng, ở mảng này thì CodeIgniter có thể canh trạnh được với Phalcon.
So sánh giữa Phalcon và Symfony
Cả Symfony và Phalcon đều là những dự án mã nguồn mở đa ngôn ngữ và hỗ trợ ORM. Chúng là extensions của kiến trúc MVC, và có CLIs riêng, với tư liệu hướng dẫn chi tiết. Nếu bạn đang muốn dựng REST APIs, cả 2 đều là lựa chọn hoàn hảo. Nhưng một lần nữa, khi nhắc đến hiệu năng, Phalcon vẫn giành chiến thắng. Trung bình, Phalcon có thể xử lý nhiều hơn 50 phần trăm so với Symfony. Tuy nhiên, ở việc debug, thì Phalcon hơi khó khăn, vì bạn cần biết code viết trên C. Debug trong symfony có thể dễ hơn nhiều.
Cài đặt Phalcon PHP Framework
Với Phalcon, tất cả những gì bạn cần làm là cài một PHP extension, chiếm dung lượng rất nhỏ. Tuy nhiên bạn cần root access để thực hiện. May mắn là nó đã được cài sẵn trên gói shared hosting của chúng tôi, vì vậy, việc thiết lập ban đầu sẽ không quá khó khăn. Chúng tôi cũng sẽ viết về cách cài Phalcon trên VPS chạy Ubuntu 16.04. Để mọi việc dễ dàng hơn, chúng tôi sẽ dùng Phalcon Developer cho cả 2 trường hợp.
Không chừng chừ nữa, hãy tiến hành ngay thôi!
Lựa chọn 1 – Thiết lập Phalcon trên TINET.VN shared hosting
Đầu tiên, chúng tôi sẽ bắt đầu bằng cách cài Phalcon devtool bằng Composer, vốn cũng đã được cài sẵn từ trước trên gói hosting của chúng tôi. Để bắt đầu, kết nối tài khoản hosting của bạn tới SSH. Sử dụng command pwd
để kiểm tra vị trí hiện tại của bạn. Chúng tôi khuyên nên tạo một thư mục trước public_html
, để cho gọn gàng. Nếu lệnh sau đưa kết quả bên dưới, bạn đã ở đúng vị trí:
-bash-4.1$ pwd /home/YOUR_USERNAME
Bây giờ, hãy tạo file composer.json với nội dung sau:
{ "require-dev": { "phalcon/devtools": "~3.2" } }
Bạn có thể làm vậy bằng File Manager hoặc bằng lệnh SSH:
nano composer.json
Nó sẽ tạo file và mở text editor để bạn dán nội dung trên vào. Sau đó bạn nhấn CTRL+X để lưu. Để cài đặt Phalcon developer tools, thực thi lệnh sau:
composer install
Đợi một lúc để quá trình hoàn tất, nó có thể mất ít phút. Sau đó hãy tạo một alias để dev tools hoàn toàn hoạt động bình thường. Nếu bạn theo đúng các bước trên, bạn có thể thực thi lệnh sau:
alias phalcon=/home/YOUR_USERNAME/vendor/phalcon/devtools/phalcon.php
Đừng quên thay YOUR_USERNAME thành đúng username của bạn.
Bây giờ, chúng ta đã có Phalcon developer tools. Để kiểm thử nó có hoạt động không, gõ lệnh:
phalcon
Bạn sẽ nhận được kết quả tương tự:
Phalcon DevTools (3.2.12) Available commands: info (alias of: i) commands (alias of: list, enumerate) controller (alias of: create-controller) module (alias of: create-module) model (alias of: create-model) all-models (alias of: create-all-models) project (alias of: create-project) scaffold (alias of: create-scaffold) migration (alias of: create-migration) webtools (alias of: create-webtools) serve (alias of: server) console (alias of: shell, psysh)
Vì gói shared hosting đã có tất cả thành phần cần thiết cho Phalcon framework chạy, bạn không cần cài đặt bất kỳ extensions nào khác nữa. Phalcon framework có kiến trúc lỏng lẻo, nên bạn có thể tạo bất kỳ cấu trúc thư mục nào thuận tiện cho bạn. Để đơn ginả, chúng tôi sẽ dùng cấu trúc mà Phalcon developer tools cung cấp sẵn. Hãy chuyển tới thư mục public_html
bằng lệnh sau:
cd public_html
Khi bạn đã đến đó, sử dụng Phalcon developer tool để cài đặt mọi thứ:
phalcon create-project example
Bây giờ, nếu bạn chuyển tới YourDomain.com/example trên trình duyệt, bạn sẽ thấy màn hình sau:
Lựa chọn 2 – Cài đặt Phalcon trên VPS
Bây giờ, hãy học cách cài đặt Phalcon PHP framework trên một máy chủ ảo VPS. Có thể mất nhiều thời gian hơn vì bạn cần cài nhiều thứ hơn. Nhưng chúng tôi sẽ chỉ hết cho bạn cho nên không khó lắm đầu. Ở phần này, chúng tôi sẽ dùng VPS chạy Ubuntu 16.04.
Đầu tiên, chúng tôi cần những thành phần sau được cài:
- Apache
- MySQL
- PHP 5.5+
- Composer
Apache, MySQL, và PHP đã được cài sẵn trên hầu hết các VPS templates. Vì vậy bạn chỉ cần cài Composer. Khi hoàn tât1, bạn có thể cài đặt Phalcon PHP extensions. Thực thi lệnh sau:
curl -s https://packagecloud.io/install/repositories/phalcon/stable/script.deb.sh | sudo bash
Bây giờ bạn đã có đủ mọi thứ cần thiết, hãy thiết lập Phalcon Framework. Chúng ta sẽ bắt đầu bằng cách lấy Phalcon developer tools, sẽ đơn giản hóa quá trình cài đặt. Chuyển tới thư mục gốc của domain. Nó có thể là:
cd /var/www
Sử dụng lệnh sau để tạo file composer.json:
nano composer.json
Nó sẽ tạo file này và mở text editor ra. Hãy dán nội dung sau vào:
{ "require-dev": { "phalcon/devtools": "~3.2" } }
Nhấn CTRL+X để lưu. Tiếp tục cài đặt bằng lệnh sau:
composer install
Khi hoàn tất, hãy tạo alias để đảm bảo Phalcon Developer tools hoạt động. Trong ví dụ này, cấu trúc của nó sẽ là:
alias phalcon=/var/www/vendor/phalcon/devtools/phalcon.php
Hãy xem phalcon có hoạt động không bằng lệnh:
phalcon
Kết quả:
Phalcon DevTools (3.2.12) Available commands: info (alias of: i) commands (alias of: list, enumerate) controller (alias of: create-controller) module (alias of: create-module) model (alias of: create-model) all-models (alias of: create-all-models) project (alias of: create-project) scaffold (alias of: create-scaffold) migration (alias of: create-migration) webtools (alias of: create-webtools) serve (alias of: server) console (alias of: shell, psysh)
Bây giờ chúng ta đã sẵn sàng để chạy dự án. Framework này hoạt động theo kiểu loosely coupled, bạn không cần quan tâm đến cấu trúc thư mục. trong ví dụ này, chúng tôi sẽ sử dụng cấu trúc mặc định được cung cấp bởi developer tools. Giờ hãy chuyển tới thư mục root của tên miền. Ví dụ:
cd /var/www/hostinger-tutorials.com/public_html
Tiếp theo, sử dụng lệnh sau để tạo cấu trúc thư mục và bắt đầu:
phalcon create-project example
Giờ bạn mở trình duyệt lên (truy cập YourDomain.com/example) sẽ thấy:
Tạo dự án đầu tiên của bạn với Phalcon PHP Framework
Bây giờ, bạn hãy tạo ứng dụng cơ bản. Hãy tưởng tượng bạn đang tạo một dự án và muốn lấy danh sách khách hàng trước khi ra mắt. Chúng ta có thể làm vậy bằng cách tạo một mẫu form đăng ký trước và lưu thông tin khách vào MySQL databases.
Hiểu về cấu trúc thư mục của Phalcon directory
Như đã nói ở trên, framework này là loosely coupled. Có nghĩa làb bạn có thể tạo bất kỳ cấu trúc thư mục nào cho riêng bạn. Tuy nhiên, để làm thử, chúng tôi sẽ dùng cấu trúc mặc định của Phalcon developer tools. Hãy xem nhé!
Thư mục gốc của ứng dụng được biết đến là folder root. Bất kỳ thư mục nào đặt ngoài thư mục root đều không thể truy cập được bởi web server và không nằm trong dự án Phalcon. Trong trường hợp của chúng ta, nó thư mục example.
Khi bạn đã tạo dự án, thư mục sau sẽ xuất hiện trong file system:
- App: App folder chứa các phần cốt lõi của ứng dụng. Tất cả các scripts folder và files được chứa trong thư mục này. Đặc biệt nó bao gồm:
- Config: Như tên gọi, nó dùng để thiết lập cấu hình cần thiết. Bất kể bạn muốn thêm một thư viện mới của bên thứ 3 hay thiết lập kết nối database, bạn sẽ cần làm vậy bằng cách đặt các code liên quan trọng thư mục này.
- Controllers: Controllers xử lý yêu cầu và thực hiện phản hồi tương ứng. Bất kỳ controller nào bạn định nghĩ sẽ nằm trong thư mục này.
- Library: Tất cả các thư viện của bên thứ ba bạn muốn đính kèm cần đặt trong thư mục này.
- Migrations: Nếu bạn muốn làm gì với di chuyển dữ liệum bạn sẽ cần phải thêm hoặc sửa file trong thư mục này.
- Models: Folder này chưa gần như mọi thứ liên quan đến data. Bao gồm cả việc tương tác với database và trích xuất hoặc xuất trình data.
- Views: Views trong kiến trúc MVC chịu trách nhiệm để hiển thị nội dung tới người dùng. Tất cả những thông tin liên quan, như hiện nội dung trang, sẽ được đặt trong thư mục này.
- Cache: Caching đóng vai trò lớn trong việc đảm bảo hiệu năng, và tất cả những gì liên quan đến caching sẽ đặt trong thư mục này.
- Public: Nó chứa folders như là CSS, JavaScript, metadata, hình ảnh sẽ được uploads, file cần phải được uploads, hoặc các thông tin data tạm liên quan đến ứng dụng.
Đây là biểu đồ để giúp bạn nhớ cấu trúc mặc định của Phalcon framework:
Cấu hình kết nối MySQL Database Connection
Đầu tiên, bạn sẽ cần phải tạo MySQL database nơi ứng dụng lưu dữ liệu người dùng. Bạn có thể làm vậy trong mục MySQL Databases trong control panel.
Khi hoàn tất bạn sẽ cần tạo một bảng. Truy cập vào database bằng phpMyadmin và tới mục SQL .
Sau đó thực thi lệnh sau:
CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(70) NOT NULL, `email` varchar(70) NOT NULL, PRIMARY KEY (`id`) );
Nó sẽ tạo một bảng users với cấu trúc sau.
Tiếp theo, chuyển tới /public_html/example/app/config/config.php và cấu hình kết nối database. Bạn sẽ cần phải chỉnh sửa các trường sau:
'database' => [ 'host' => 'Your_MySQL_Hostname', 'username' => 'Your_MySQL_User', 'password' => 'Your_MySQL_Password', 'dbname' => 'Your_MySQL_Database',
Khi bạn đã điền xong thông tin MySQL, bạn có thể tiếp tục thực hiện bước kế tiếp.
Thêm một model mới
Bây giờ, bạn sẽ cần phải tạo một model. Nó sẽ map tới bảng user bạn vừa tạo. Dễ nhất là tạo bằng Phalcon Dev tools. Sử dụng terminal, chuyển tới thư mục root của Phalcon. Trong ví dụ này, nó sẽ là:
cd public_html/example
Đây là lệnh để tạo model cần thiết:
phalcon model users
File mới sẽ xuất hiện trong public_html/example/app/model/Users.php.
Tạo một Controller mới
Trong bài hướng dẫn này, chúng tôi sẽ tạo một trang home và signup. Controller cho trang chủ đã được tạo, cho nên bạn chỉ cần tạo một cái mới cho trang đăng ký (sign up). Chúng tôi cũng dùng Phalcon developer tools để làm. Thực thi lệnh sau để tạo thêm controller mới:
phalcon controller Signup
Nó sẽ hiện trong mục public_html/example/app/controllers/SignupController.php. Hãy ở file ra và thêm vài dòng để nó tương tác vớid atabase. Kết quả cuối cùng sẽ như sau:
<?php class SignupController extends \Phalcon\Mvc\Controller { public function indexAction() { } public function registerAction() { $user = new Users(); // Store and check for errors $success = $user->save( $this->request->getPost(), [ "name", "email", ] ); if ($success) { echo "Thanks you for signing up!"; } else { echo "Oops, seems like the following issues were encountered: "; $messages = $user->getMessages(); foreach ($messages as $message) { echo $message->getMessage(), "<br/>"; } } $this->view->disable(); } }
Tạo trang nội dung
Văn bản và nội dung cảu trang nằm trong mục public_html/example/app/views. Mỗi trang có một thư mục riêng. Bạn sẽ thấy trang index đã được tạo. Vì vậy chúng tôi sẽ cần tạo thêm một folder là signup với một file index.phtml. Định dạng .phtml cho phép bạn dùng code của HTML và cả PHP.
Đầu tiên hãy sửa file index tại public_html/example/app/views/index/index.phtml. Đây là những gì chúng tôi làm:
<div class="page-header"> <h1>Welcome to Project Phalcon</h1> </div> <p>Want to be the first to get the latest updates?</p> <?php echo $this->tag->linkTo( "signup", "Sign Up Here!" );
PHP code này sẽ chuyển người dùng tới trang signup .
Tiếp tục chỉnh sửa public_html/example/app/views/signup/index.phtml. Chúng ta muốn mọi người đăng ký trên trang này, vì vậy chúng ta cần làm:
<h2>Sign up using this form</h2> <?php echo $this->tag->form("signup/register"); ?> <p> <label for="name">Name</label> <?php echo $this->tag->textField("name"); ?> </p> <p> <label for="email">E-Mail</label> <?php echo $this->tag->textField("email"); ?> </p> <p> <?php echo $this->tag->submitButton("Register"); ?> </p> </form>
Vậy là xong, Bây giờ bạn có thể kiểm tra kết quả của Phalcon PHP framework.
Kiểm thử ứng dụng Phalcon Application
Hiện tại, ứng dụng Phalcon đặt tại thư mục public_html/example. Nên bạn cần mở trình duyệt theo đường dẫn YourDomain.com/example. Để load trực tiếpt rên YourDomain.com, bạn có thể di chuyển tất cả file ra public_html bằng File Manager.
Tiếp theo, truy cập domain qua trình duyệt bạn sẽ thấy trang chủ:Nếu bạn click vào ntú Sign Up Here, nó sẽ chuyển bạn tới trang sign up bạn vừa tạo:
Khi người dùng gửi dữ liệu, anh ấy sẽ nhận được màn hình xác nhận:
Trong trường hợp điền sai, framework sẽ thông báo lỗi:
Nó cũng có thể nhận ra địa chỉ email có đúng cấu trúc không. Trong trường hợp gõ sai hoặc thiếu dấu, người dùng sẽ thấy:Cuối cùng, tất cả các entries đúng sẽ xuất hiện trong bảng user trong database của bạn:
Chúc mừng! Bằng việc hoàn thành bài hướng dẫn Phalcon này, bạn đã tạo được một form đăng ký cơ bản.
Lời kết
Phalcon là một PHP framework mới. Mặc dù nó không phổ biến như Laravel hoặc các framework khác, nó có tiềm năng lớn vì tốc độ cực nhanh. Nó cũng đơn giản để cài đặt. Nếu bạn thích tạo và phát triển website, Phalcon rõ ràng là rất đáng để thử. Ai biết được, mai này nó sẽ trở thành framework ưa thích của bạn thì sao! Hãy xem qua tài liệu chính thức để biết thêm chi tiết.
Nếu bạn có bất kỳ thủ thuật, mẹo vặt, bạn thấy cần chia sẽ. Hãy cho chúng tôi biết bằng cách để lại bình luận bên dưới nhé.
Write a Comment
You must be logged in to post a comment.