Chọn framework php phù hợp
Bài đăng này đã không được cập nhật trong 7 năm
Giới thiệu
PHP là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới, với phát hành gần đây của PHP 7 đã làm cho ngôn ngữ lập trình này nhanh hơn và ổn định hơn nhiều so với các phiên bản trước.
PHP được sử dụng rộng rãi trong các dự án lớn. Hiện tại, PHP có chiếm đến 80% các trang web trên toàn thế giới.
Trong bài này, chúng ta sẽ xem xét ba framework PHP phổ biến nhất là: Symfony
, Laravel
, và Yii
.
Tại sao lại chọn một framework PHP?
- Một framework PHP giúp phát triển nhanh hơn. Ví dụ, bạn không phải viết các truy vấn phức tạp để lấy dữ liệu từ cơ sở dữ liệu. Các framework PHP cung cấp các hoạt động CRUD (Tạo, Đọc, Cập nhật, và Xóa).
- Cho phép các nhà phát triển dễ dàng mở rộng hệ thống.
- Mã code rất ngắn gọn, dễ hiểu và dễ sử dụng.
- Mô hình MVC đảm bảo sự phát triển nhanh chóng, thuận tiện.
- Các framework giúp bảo vệ ứng dụng web khỏi các mối đe dọa an ninh thông thường.
Làm thế nào để chọn một framework PHP
Trả lời một số câu hỏi sau có thể giúp bạn chọn một framework:
- Các tính năng và chức năng của framework này là gì? (Liệu nó có cung cấp những gì tôi cần?)
- Khả năng mở rộng của framework?
- Framework này có được xây dựng và duy trì bởi nhóm, tổ chức công ty vững mạnh, uy tín.
- Framework này có hỗ trợ (fix bug, security, cập nhập thường xuyên) dài hạn (hỗ trợ LTS)?
- Framework này có cộng đồng mạnh mẽ không?
Symfony, Laravel, và Yii
Trước khi đi vào chi tiết kỹ thuật, dưới đây là tổng quan về 3 framework:
Symfony
Ra mắt và năm 2005, là một framework mạnh mẽ, Symfony là sự kết hợp giữa tính vững bền của PHP, sự tự do của Open Soure với đặc tính dễ bảo trì của một mã lập trình được thiết kế theo mô hình MVC (Model-View-Controller).
Symfony là một framework Open Source viết bằng ngôn ngữ lập trình PHP5. Symfony giúp phát triển ứng dụng web thiết kế theo yêu cầu. Một cộng đồng rộng lớn các lập trình viên đảm bảo về khả năng phát triển, tính linh động, tự do và tiết kiệm chi phí cho các dự án được phát triển với Symfony, đây cũng là những đặc tính mà Sutunam luôn chú trọng đưa vào các giải pháp Open Source của mình. Trên hết, cùng với Drupal, phpBB và ezPublish, Symfony2 hiện đang là một trong những phiên bản hệ thống quản trị nội dung (CMS) mới nhất được viết bằng PHP.
Laravel
Laravel ra mắt vào cuối tháng 04-2011 nhưng đã gây được sự chú ý lớn đối với cộng đồng PHP framework. Laravel được tạo ra bởi Taylor Otwell. Nó là 1 framework khá mới mẻ nhưng bù lại nó có “hướng dẫn sử dụng” ( Document ) khá đầy đủ, rõ ràng và dễ hiểu và nhiều ưu điểm hấp dẫn. Nếu bạn đã từng làm việc với các framework khác hoặc chỉ là người mới bắt đầu tìm hiểu php framework thì việc tiếp cận laravel framework không phải là vấn đề khó khăn gì. Laravel Framework vẫn sử dụng cấu trúc MVC và trên nền tảng lập trình hướng đối tượng OOP đồng thời kế thừa được sức mạnh của các đàn anh và đem đến những tính năng mới của PHP 5.3 trở lên. Nhưng cũng chính vì ra đời muộn màng như thế đã buộc nó phải học hỏi cái hay từ các PHP Framework đàn anh đi trước, khắc phục những thiếu xót của các framework khác như symfony (laravel dùng thư viện của symfony) và đặc biệt là CI. Không những học hỏi từ các PHP Framework, nó còn học cái hay từ Ruby on Rails, ASP.NET MVC, và Sinatra.
Yii
Được tạo bởi Qiang Xue trong năm 2008, Yii là một application/web-development framework, nhanh chóng, có hiệu suất cao. Yii sử dụng Composer để quản lý các packages, thành phần mở rộng của project. Yii cũng là framework PHP nhanh nhất, nhờ vào kỹ thuật lazy loading.
So sánh
Tất cả ba framework đều tuyệt vời cho việc xây dựng các ứng dụng Web 2.0, nhưng mỗi framework phục vụ một mục đích khác. Hãy cùng điểm quá các tính năng của 3 framwork nào.
Templating engines
Templating engines giảm thiếu tối qua công sức phát triển sản phẩn, nó cung cấp các công cụ để viết font-end một cách nhanh chóng và dễ dáng nhất. Templating engines cung cấp các tính năng như tự động escaping and filters HTML, hay tự động đóng những thành phần của html.
Symfony Twig template system
Twig là một hệ thống templating cho PHP. Symfony sử dụng Twig để tận dụng lợi thế của nó và cho phép các nhà phát triển viết mã sạch sẽ, súc tích và khả năng làm việc nhiều hơn so với PHP thô.
Xem http://twig.sensiolabs.org/ site để tìm hiểu thêm về các tính năng của template engines này.
Hệ thống khuôn mẫu Laravel Blade
Blade cũng hỗ trợ filter, escaping html. Nhưng không giống như các hệ thống templating khác, Blade cho phép bạn sử dụng mã PHP trong đó. Tất cả các mã trong các tập tin blade sẽ được chuyển đổi sang mã PHP trong quá trình xử lý.
Yii Mặc định hệ thống templating
Yii không sử dụng bất kỳ hệ thống templating của bên thứ ba theo mặc định, nhưng điều đó không có nghĩa là nó thiếu hỗ trợ hệ thống templating. Bạn có thể lựa chọn một templating bất kỳ nào để phát triển sản phần của mình. Twig và Smarty được khuyến khích. Symfony sử dụng Twig, vì vậy nếu bạn đã từng sử dụng Symfony trong quá khứ, bạn có thể sử dụng Twig cho dự án Yii cũng không thành vấn đề.
Qua đó chúng ta thấy Không có framwwork nào nổi trội hơn cả. Tất cả templating đều có thể sử dụng tốt cho sự phát triền font-end. Một lợi thế nhỏ cho Yii là framework không có một hệ thống templating được xác định trước.
Khác biệt Framework
Mỗi framework được tạo ra khác nhau. Symfony hoạt động trên các thành phần tái sử dụng và cung cấp nhưng modular tốt nhất. Symfony cũng sử dụng model and controller để phát triển một ứng dụng web, có thể trông phức tạp với nhiều new developer. Ngoài ra, Symfony là một ví dụ điển hình về modular. Bạn có thể sử dụng 30 components được cung cấp bởi Symfony trong dự án của bạn theo modular.
Symfony có thể được sử dụng cho sự phát triển một cách nhanh chóng và với các dự án phức tạp. Mặc dù chưa có một cuộc đánh giá nào về framework nào là tốt hơn cho các dự án phức tạp, nhưng Symfony lại cho thấy sự xử lý phức tạp tốt hơn so với các framework khác. Yii cũng sử dụng các components, nhưng không phải là modular như Symfony. Laravel không cung cấp cách tiếp cận mô đun rõ ràng như hai framework kia.
Nếu bạn đang tìm kiếm modular framework, hãy chọn Symfony. Nếu không, Laravel và Yii đều là những lựa chọn tuyệt vời.
Cài đặt
Cả ba frameworks cung cấp cách thức cài đặt khác nhau. Nếu bạn đang sử dụng Composer để xử lý các gói, bạn sẽ rất vui khi biết rằng tất cả các framework có thể được cài đặt qua Composer.
Đối với Symfony, vai trò của Composer là quan trọng hơn. Tất cả các component đều được cài đặt qua composer (https://getcomposer.org/).
Sau khi cài đặt, Yii cung cấp cho bạn một ứng dụng web và một basic template để làm việc. Symfony 2 cũng cung cấp một ứng dụng demo để bắt đầu.
Laravel cũng dễ cài đặt bằng cách sử dụng Composer hoặc qua Laravel Installer. Xem hướng dẫn cài đặt Laravel để biết chi tiết (https://laravel.com/docs/5.5#installing-laravel).
Phát triển nhanh
Từ ý tưởng của công ty hoặc khách hàng, nhanh chóng đưa r aứng dụng cho thị trường để đáp ứng nhu cầu tiêu dùng và đánh bại các đối thủ cạnh tranh là rất quan trọng. Symfony là một framework vững chắc với một cộng đồng mạnh mẽ đứng sau nó.
Laravel cũng đang phát triển nhanh chóng. Mặt khác, nếu bạn không có kiến thức về bất kỳ framework PHP và muốn bắt đầu càng nhanh càng tốt, hãy cân nhắc Laravel. Laravel có thể tiếp cận dễ dàng và bạn sẽ tìm thấy nhiều hướng dẫn trực tuyến để giúp bạn bắt đầu. Yii là sự lựa chọn tiếp theo.
Hiệu suất
Hiệu suất của bất kỳ ứng dụng nào chỉ có vấn đề nếu nó là một ứng dụng thời gian thực (real-time ) hoặc cần phải sử lý một lượng request cũng như database rất lớn. Có bao nhiêu ứng dụng dựa trên web có hiệu năng cao? Không nhiều, nhưng hiệu suất của các framework có thể đóng một vai trò quan trọng trong nhiều dự án. Hiệu năng của ứng dụng còn phụ thược nhiều vào developer, database structe
Mạng xã hội là ví dụ điển hình về các ứng dụng thời gian thực và một trong những chương trình quảng cáo của chúng tôi, jadson, đã xây dựng mạng xã hội di động sử dụng Yii2. Khi nói đến việc lựa chọn framework tốt nhất để xây dựng một ứng dụng có hiệu suất cao, Yii nổi bật hơn cả, Nó là một Framework PHP nhanh nhất theo đánh giá của chúng tôi.
Hiệu suất của Laravel cần thảo luận hơn. Nó là chậm nhất trong 3 framework trên, nhưng điều đó không quan trọng? Bạn sẽ tìm thấy tài nguyên trực tuyến để tăng tốc hiệu suất, bao gồm hướng dẫn về GitHub để làm cho ứng dụng Laravel của bạn nhanh hơn.
Hỗ trợ cơ sở dữ liệu
Symfony 2 hỗ trợ cơ sở dữ liệu tốt hơn. Bạn có thể làm việc với một loạt các cơ sở dữ liệu, bao gồm NoSQL và DynamoDB. Yii và Laravel cũng hữu ích trong vấn đề này, nhưng chúng hỗ trợ ít cơ sở dữ liệu hơn Symfony. Cơ sở dữ liệu được hỗ trợ bởi mỗi framework:
Framework | Laravel | Yii | Symfony |
---|---|---|---|
Database | Microsoft BI MongoDB MySQL PostgreSQL RedisSQLite | Microsoft BI MongoDB MySQL Oracle PostgreSQL SQLite | Apache Jackrabbit CouchDB DynamoDB GemFire GraphDB MemBase MemCacheDB Microsoft BI MongoDB MySQL NoSQL Oracle PostgreSQL |
Cộng đồng và nguồn lực
Một sự quan trọng cho sự tồn tại của Framework mã nguồn mở là sức mạnh của cộng đồng. Tất cả ba framework đều có các cộng đồng vững chắc, mặc dù Symfony có thể trưởng thành hơn một chút.
Khi nói đến việc học tập và tài liệu, Laravel nổi bật, mặc dù Symfony và Yii không quá khó đọc:
Tài liệu Laravel: https://laravel.com/docs/5.2 Tài liệu Symfony (3.0): http://symfony.com/doc/current/index.html Tài liệu Yii : http://www.yiiframework.com/doc/
Khả năng mở rộng
Frameworks là các cấu trúc có thể được mở rộng với các extensions hoặc packages, nâng cao tính năng và phạm vi của chúng. Khi nói đến phần mở rộng, Laravel là tốt nhất. Packalyst, một thư mục các packages Laravel, cung cấp hơn 9.000 packages. Mặt khác Yii và Symfony, cung cấp khoảng 2800 extensions và 2830 knpbundles. Với số lượng gấp ba lần số lần extensions (packages), Laravel dường như là framework tốt nhất trong lĩnh vực này.
Điểm tương đồng
Chúng tôi đã xem xét sự khác biệt giữa các framework. Bây giờ chúng ta hãy nhìn vào sự tương đồng của chúng:
- Tất cả ba framework đều là các PHP frameworks full-stack và cung cấp các chức năng cho việc tạo ra ứng dụng web, từ viết mã front-end đến việc sử lý dữ liệu back-end.
- Là các dự án mã nguồn mở (open source) và mã nguồn của họ có thể được tìm thấy trên GitHub, giúp mọi người đóng góp một cách dễ dàng:
Symfony : https://github.com/symfony/symfony Laravel : https://github.com/laravel/laravel
- Các framework đều có tài liệu rõ ràng và hỗ trợ bởi một cộng đồng lớn.
- Chúng đều hỗ trợ ORM (Object Relationship Mapping). ORM rất được ưa thích để viết code cho ứng dụng của bạn.
- Chúng rất mạnh mẽ, an toàn và đáng tin cậy để tạo các ứng dụng Web 2.0.
Tổng Kết
Symfony:
- Cung cấp một bản phát hành LTS,
- Đi kèm với vô số các tính năng,
- Hiện là framework ổn định nhất,
- Là một framework dựa trên thành phần và cung cấp mô đun và extensive,
- Có một cộng đồng lớn với nhiều tài nguyên học tập.
Yii:
- Đi kèm với hỗ trợ Ajax,
- Rất tốt cho phát triển các ứng dụng thời gian thực vì nó cung cấp các hoạt động nhanh hơn,
- Được mở rộng rất cao.
- Xử lý lỗi nhanh chóng,
- Tốt cho việc tạo Restful Web Services,
- Có một cộng đồng lớn với nhiều tài nguyên học tập.
Laravel:
- Là framework phổ biến nhất trong giai đoạn 2015-2016,
- Hỗ trợ Composer để quản lý package,
- Cung cấp unit testing tốt
- Cung cấp rất nhiều packages để mở rộng các chức năng framework,
- Có một cộng đồng lớn với nhiều tài nguyên học tập.
Cả 3 framwork Symfony, Laravel và Yii, cả ba framework PHP đều là những lựa chọn xuất sắc cung cấp một môi trường phát triển đầy đủ cho các nhà phát triển. Đối với tôi, Laravel là người chiến thắng đang nổi lên như một ngôi sao không có dấu hiệu dừng lại.
Tuy nhiên, Symfony và Yii đều là những framework xuất sắc. Symfony được thiết lập tốt và với một cộng đồng lớn hơn, trưởng thành hơn. Yii là một framework độc đáo mạnh mẽ, an toàn, và được thực hiện công việc.
Tham khảo
All rights reserved