Đánh giá những Framework PHP tốt nhất cho phát triển web hiện đại và một số ứng dụng tại học viện nông nghiệp Việt Nam

TÓM TẮT Từ khi ngôn ngữ lập trình phía server PHP ra đời, nó luôn được cộng đồng người phát triển ứng dụng web ưa chuộng bởi tính hiệu quả, dễ sử dụng. Hiện nay, PHP vẫn đang là ngôn ngữ lập trình web phổ biến nhất trên thế giới. Sự xuất hiện của các framework PHP cung cấp cho những người phát triển web sự tiện dụng, hiệu quả cũng như tiết kiệm thời gian và công sức khi phát triển những trang web chuyên nghiệp nhờ các tính năng đã tích hợp sẵn. Nghiên cứu tổng quan của chúng tôi tổng hợp những xu hướng sử dụng công nghệ lập trình web, đánh giá ưu điểm, nhược điểm của 6 framework PHP tốt nhất được thống kê từ những tổ chức, cá nhân uy tín và đáng tin cậy. Từ đó, chúng tôi đưa ra những gợi ý cho những người phát triển web có thể lựa chọn một framework thích hợp nhất với khả năng của mình cũng như với yêu cầu của ứng dụng web cần phát triển. Phần cuối, bài báo giới thiệu hai ứng dụng web của chúng tôi là những trường hợp nghiên cứu riêng.

pdf11 trang | Chia sẻ: thanhle95 | Lượt xem: 683 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Đánh giá những Framework PHP tốt nhất cho phát triển web hiện đại và một số ứng dụng tại học viện nông nghiệp Việt Nam, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Vietnam J. Agri. Sci. 2019, Vol. 17, No. 8: 655-665 Tạp chí Khoa học Nông nghiệp Việt Nam 2019, 17(8): 655-665 www.vnua.edu.vn 655 ĐÁNH GIÁ NHỮNG FRAMEWORK PHP TỐT NHẤT CHO PHÁT TRIỂN WEB HIỆN ĐẠI VÀ MỘT SỐ ỨNG DỤNG TẠI HỌC VIỆN NÔNG NGHIỆP VIỆT NAM Phạm Quang Dũng1*, Nguyễn Thị Thảo1, Trần Thị Giang2 1 Khoa Công nghệ thông tin, Học viện Nông nghiệp Việt Nam 2 Khoa Thú y, Học viện Nông nghiệp Việt Nam * Tác giả liên hệ: pqdung@vnua.edu.vn Ngày nhận bài: 26.02.2018 Ngày chấp nhận đăng: 29.10.2019 TÓM TẮT Từ khi ngôn ngữ lập trình phía server PHP ra đời, nó luôn được cộng đồng người phát triển ứng dụng web ưa chuộng bởi tính hiệu quả, dễ sử dụng. Hiện nay, PHP vẫn đang là ngôn ngữ lập trình web phổ biến nhất trên thế giới. Sự xuất hiện của các framework PHP cung cấp cho những người phát triển web sự tiện dụng, hiệu quả cũng như tiết kiệm thời gian và công sức khi phát triển những trang web chuyên nghiệp nhờ các tính năng đã tích hợp sẵn. Nghiên cứu tổng quan của chúng tôi tổng hợp những xu hướng sử dụng công nghệ lập trình web, đánh giá ưu điểm, nhược điểm của 6 framework PHP tốt nhất được thống kê từ những tổ chức, cá nhân uy tín và đáng tin cậy. Từ đó, chúng tôi đưa ra những gợi ý cho những người phát triển web có thể lựa chọn một framework thích hợp nhất với khả năng của mình cũng như với yêu cầu của ứng dụng web cần phát triển. Phần cuối, bài báo giới thiệu hai ứng dụng web của chúng tôi là những trường hợp nghiên cứu riêng. Từ khóa: PHP framework, phát triển web. Assessment of the Best PHP Frameworks for Modern Web Development and Some Applications at VNUA ABSTRACT Since the PHP server-side programming language was born, it has always been popular with developers for web applications. Until now, PHP has been still the most popular web programming language in the world. The emergence of PHP frameworks has provided web developers with the convenience and efficiency to save time, effort to develop professional web sites based-on built-in features. Our review summarizes the trends of using web programming technology, assesses the advantages and disadvantages of the best six PHP frameworks which have been pointed out by reputable, trusted organizations and individuals. From those, we give suggestions for web developers to choose the framework that best suits their capabilities as well as the requirements of the web application. Finally, the article introduces the two web apps as our case studies. Keywords: PHP framework, web development. 1. ĐẶT VẤN ĐỀ Theo tổ chĀc chuyên nghiên cĀu công nghû đþợc các website sā dýng là BuiltWith cûa Australia, PHP hiûn vén là ngôn ngĂ lêp trình web phía server phổ biøn nhçt thø giĆi. Trong 1 triûu website cĂ lþợng truy cêp lĆn nhçt thì có đøn 41,57% website sā dýng công nghû PHP (Hình 1). NhĂng website lĆn và nổi tiøng toàn thø giĆi nhþ các mäng xã hội Facebook, Wikipedia, Yahoo, nhĂng kho ânh/mã nguồn chia só Photobucket, Fotolia, Flickr, Istock, SourceForge, nhĂng hû quân trĀ nội dung (CMS) và blog phổ biøn nhçt thø giĆi nhþ WordPress, Tumblr đ÷u đþợc xây dăng trên PHP (Simplified-Techy, 2018). Cùng vĆi să phát triùn cûa PHP, các framework hỗ trợ cüng không ngÿng câi tiøn, cänh tranh đù đem đøn cho nhĂng ngþąi lêp trình să hỗ trợ tốt nhçt và cho ngþąi dùng web să trâi nghiûm duyût web tốc độ nhanh và thuên tiûn nhçt. Đánh giá những framework PHP tốt nhất cho phát triển web hiện đại và một số ứng dụng tại Học viện Nông nghiệp Việt Nam 656 Hình 1. Top 5 công nghệ phát triển web hiện nay Trong nhĂng nëm gæn đåy, 6 framework PHP phát triùn nhçt thø giĆi (Codemarts, 2015) (Value-Coders, 2018) gồm có Laravel, Phalcon, Symfony, CodeIgniter, CakePHP và Zen. Trong bài báo này, chúng tôi giĆi thiûu và so sánh đðc điùm gồm câ þu điùm và nhþợc điùm cûa nhĂng framework nêu trên nhìm giúp ngþąi đọc có cái nhìn khá tổng quan và giúp ngþąi lêp trình web xem xét lăa chọn framework phù hợp cho mình. 2. NHỮNG FRAMEWORK PHP ĐƯỢC SỬ DỤNG NHIỀU NHẤT 2.1. Framework và mô hình MVC Framework là một bộ mã nguồn đþợc xây dăng, phát triùn và đĂng gĂi - phân phối bći các chuyên gia lêp trình hoðc bći các công ty lêp trình. Nó cung cçp một cçu trúc phát triùn chuèn đù nhĂng ngþąi lêp trình dăa vào đĂ xåy dăng và phát triùn các dă án. Đi kñm theo nĂ là một kho thþ viûn gồm nhi÷u lĆp/hàm xā lý đþợc đðt trong các gói hoðc không gian tên riêng. Các chuyên gia lêp trình sā dýng nhi÷u kỹ thuêt lêp trình và giâi thuêt đù xây dăng các lĆp xā lý một cách tối þu nhçt, giâi quyøt các bài toán lêp trình nhanh chóng và chính xác. Các lĆp trong một framework sô làm viûc tốt nhçt vĆi cçu trúc chuèn mà framework đĂ cung cçp. PHP là một ngôn ngĂ kĀch bân mänh mô dùng đù xây dăng website, phæn m÷m cloud, hay dùng đù lêp trình server và hiûn nay nó cüng đang cĂ rçt nhi÷u framework tốt nhþ: Zend, Symfony, Yii, Codeigniter, Laravel đþợc rçt nhi÷u ngþąi phát triùn þa thých và sā dýng. Các PHP framework thþąng đþợc xây dăng theo chuèn mô hình MVC (Model - View - Controller) và cung cçp nhi÷u lĆp hỗ trợ xā lý v÷ bâo mêt, phân quy÷n, captcha, trình quân lý mô đun, cĄ sć dĂ liûu, dĀch vý, khi đĂ các lêp trình viên sô xây dăng, phát triùn website một cách dú dàng và nhanh chóng. PHP framework làm cho să phát triùn cûa nhĂng Āng dýng web viøt bìng ngôn ngĂ PHP trć nên trôi chây hĄn, bìng cách cung cçp một cçu trúc cĄ bân đù xây dăng nhĂng Āng dýng đĂ. Hay nĂi cách khác, PHP framework giúp ngþąi phát triùn thúc đèy nhanh chóng quá trình phát triùn Āng dýng, tiøt kiûm đþợc thąi gian, tëng să ổn đĀnh cho Āng dýng và giâm thiùu số læn phâi viøt läi mã. Ngoài ra, framework còn giúp nhĂng ngþąi mĆi bít đæu có thù xây dăng các Āng dýng ổn đĀnh hĄn nhą viûc tþĄng tác chýnh xác giĂa các cĄ sć dĂ liûu, mã (PHP) và giao diûn (HTML) một cách riêng biût. Đi÷u này cho phép họ dành nhi÷u thąi gian đù täo ra các Āng dýng web, tránh lãng phí thąi gian đù viøt các đoän mã lðp läi trong một dă án. Ý tþćng chung đìng sau cách thĀc làm viûc cûa một PHP framework đþợc kù đøn là Model- View - Controller (MVC). MVC là một mô hình (kiøn trúc) trong lêp trình, cho phép tách biût các mã nghiûp vý (business logic) và giao diûn (UI) thành các phæn riêng biût, đi÷u này đồng Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang 657 nghÿa vĆi viûc ta có thù chþnh sāa chúng một cách riêng ló. Trong cým tÿ MVC thì: Model (M) có thù hiùu là phæn xā lý các thao tác v÷ nghiûp vý (business logic), View đþợc hiùu là phæn xā lý lĆp giao diûn (presentation layer) và Controller làm nhiûm vý lọc các yêu cæu đþợc gọi tÿ user, có chĀc nëng nhþ một route: đi÷u chþnh, phân luồng các yêu cæu đù gọi đúng Model và View thích hợp. V÷ cĄ bân, MVC chia nhă quá trình xā lý cûa một Āng dýng, vì thø ngþąi phát triùn có thù làm viûc trên tÿng thành phæn riêng ló, trong khi nhĂng thành phæn khác sô không bĀ ânh hþćng tĆi. 2.2. Xu hướng sử dụng các framework PHP Trong phæn này, chúng tôi thăc hiûn các đi÷u tra đù cĂ đþợc nhĂng dĂ liûu cý thù v÷ xu hþĆng mà cộng đồng tìm hiùu v÷ các framework PHP cüng nhþ thống kê tỷ lû các framework đĂ đþợc sā dýng trong thăc tø nhþ thø nào. Tÿ đĂ, chúng tôi sô têp trung đánh giá một số framework PHP phổ biøn nhçt nhìm đem đøn cho bän đọc nhĂng thông tin hĂu ých đù quyøt đĀnh lăa chọn sā dýng framework nào cho nhĂng dă án cûa mình. VĆi mýc đých xem xét nhĂng framework PHP nào đþợc quan tâm tìm kiøm nhi÷u nhçt trên thø giĆi trong nhĂng nëm gæn đåy, chúng tôi sā dýng khâo sát vĆi Google Trends, vĆi lăa chọn tham số thąi gian là 5 nëm gæn đåy. Køt quâ (Hình 3) cho thçy trong khi các framework khác đ÷u cĂ xu hþĆng bĀ giâm să quan tâm thì Laravel läi đþợc tìm kiøm nhi÷u nhçt vĆi đþąng xu hþĆng tëng rçt cao (Google-Trends, 2019). Trên trýc tung cûa đồ thĀ, giá trĀ 100 là mĀc phổ biøn (să quan tâm tìm kiøm) cao nhçt. Giá trĀ 50 cĂ nghÿa là mĀc phổ biøn bìng một nāa. Còn mĀc 0 là không đû dĂ liûu đù đánh giá. Ở bþĆc tiøp theo, chúng tôi tìm nhĂng køt quâ khâo sát cý thù, đáng tin cêy v÷ tỷ lû mà mỗi framework đþợc sā dýng. Một khâo sát đã thăc hiûn bći GitHub [https://github.com/] nëm 2015 v÷ top 10 framework PHP đþợc sā dýng nhi÷u nhçt trên thø giĆi. Køt quâ này (Hình 4) đþợc đ÷ cêp trên các blog v÷ lêp trình nổi tiøng là Codemarts (Codemarts, 2015) và Công ty phát triùn phæn m÷m ValueCoders (Value- Coders, 2018) cûa Ấn Độ sā dýng làm cën cĀ đánh giá đù đ÷ xuçt nhĂng framework PHP tốt nhçt cho nëm 2019. Một khâo sát khác đþợc tiøn hành mĆi đåy bći một blog hþĆng dén lêp trình là Coders Eye vĆi khoâng 7.500 thành viön đëng ký. Khâo sát đã hăi nhĂng ngþąi đëng ký v÷ các câu hăi chuyön såu nhþ sā dýng cý thù cûa xác thăc, mã hĂa phiön, các phþĄng thĀc lþu trĂ cache và đĀnh tuyøn. Køt quâ đþợc liût kö dþĆi đåy sô chþ là nhĂng framework PHP đþợc sā dýng hàng đæu (Hünh 5). Danh sách này khá tþĄng đồng vĆi thống kê cûa GitHub cho thçy tính có thù tin cêy đþợc v÷ tính phổ biøn cûa nhĂng framework này trong cộng đồng ngþąi lêp trình web. Nguồn: Tech-Talk, 2016 Hình 2. Mô hình thiết kế Model-View-Controller Đánh giá những framework PHP tốt nhất cho phát triển web hiện đại và một số ứng dụng tại Học viện Nông nghiệp Việt Nam 658 Hình 3. So sánh sự quan tâm tìm kiếm của cộng đồng tới 5 framework PHP phổ biến Hình 4. Thị phần các framework PHP năm 2015 thống kê bởi GitHub 3. TỔNG QUAN 6 FRAMEWORK HÀNG ĐẦU Qua køt quâ nhĂng nghiên cĀu trên, chúng tôi chọn 6 framework PHP hàng đæu là Laravel, Phalcon, Symfony, CodeIgniter, CakePHP và Zen đù giĆi thiûu và đánh giá nhĂng þu, nhþợc điùm. Đåy là nhĂng framework PHP đþợc sā dýng nhi÷u nhçt trong nhi÷u nëm gæn đåy, cüng nhþ đĀng đæu trong nhi÷u trang khuyên dùng nhĂng framework tốt nhçt (Sukrit- Infotech, 2018). 4. ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ FRAMEWORK HÀNG ĐẦU Đù giúp bän đọc có cái nhìn tổng quan v÷ hiûu nëng một số framework PHP nêu trên, trong phæn này, chúng tôi tổng hợp køt quâ Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang 659 nghiên cĀu cûa một số nhóm tác giâ đã công bố, cüng nhþ phþĄng pháp và køt quâ một thā nghiûm đánh giá chúng tôi đã tiøn hành. Hiûu nëng cûa các framework cûa các ngôn ngĂ lêp trünh thþąng đþợc đánh giá trön các tiöu chý: tốc độ đáp Āng nhanh (thąi gian đáp Āng nhă), dung lþợng bộ nhĆ sā dýng thçp, khâ nëng tái sā dýng mã nguồn cao. Đøn thąi điùm hiûn täi, trên thø giĆi vén thiøu các độ đo hay công cý đo một cách đĀnh lþợng các khía cänh nhìm xác đĀnh chçt lþợng cûa ngôn ngĂ kĀch bân PHP cüng nhþ cûa các framework PHP. Nghiên cĀu cûa (Munir, 2014) đã so sánh và phån tých ânh hþćng cûa tính nëng ánh xä quan hû đối tþợng (object- relational mapping, ORM) đối vĆi hiûu nëng cûa CakePHP và CodeIgniter. PhþĄng pháp thā tâi bünh thþąng (load testing) và thā tâi áp lăc lĆn (stress testing) đã đþợc áp dýng. Køt quâ cûa nghiên cĀu này chþ ra rìng CodeIgniter thăc thi tốt hĄn trong đi÷u kiûn tâi thông thþąng, nhþng trong đi÷u kiûn tâi áp lăc lĆn thì CakePHP läi tốt hĄn. CodeIgniter tốt hĄn đối vĆi các Āng dýng vÿa và nhă. Nó xā lý đþợc ýt ngþąi sā dýng đồng thąi hĄn (nhă hĄn 500). Đối vĆi các Āng dýng lĆn có nhi÷u ngþąi dùng đồng thąi, tÿ 600 user trć lên thì CakePHP thçp hĄn hîn CodeIgniter v÷ thąi gian đáp Āng. Đi÷u này là do týnh nëng ORM cĂ trong CakePHP, làm tëng nëng suçt, khâ nëng duy trü và tái sā dýng cûa mã nguồn. Còn CodeIgniter chþ chäy các truy vçn SQL đĄn giân đù giao tiøp vĆi cĄ sć dĂ liûu, nön đät hiûu quâ trong các trþąng hợp tâi bình thþąng. Vì vêy, các framework có hỗ trợ ORM nön đþợc sā dýng cho các Āng dýng quy mô lĆn, cĂ lþợng giao tiøp cĄ sć dĂ liûu căc lĆn. Nguồn: Code-Eyes, 2018 Hình 5. Thị phần các framework PHP năm 2018 thống kê trên các thành viên của Coders Eye Hình 6. Sáu framework PHP hàng đầu được Công ty CNTT Sukrit (Ấn Độ) khuyên dùng Đánh giá những framework PHP tốt nhất cho phát triển web hiện đại và một số ứng dụng tại Học viện Nông nghiệp Việt Nam 660 Bâng 1. Ưu điểm và nhược điểm của 6 framework PHP hàng đầu thế giới năm 2018 (Phiên bân PHP đþợc yêu cæu cho mỗi framework đþợc xét täi thąi điùm nëm 2018) Framework Ưu điểm Nhược điểm Phiên bản PHP được yêu cầu Laravel - Mã nguồn mở - Tổ chức tệp tin và mã nguồn - Phát triển ứng dụng nhanh chóng - Kiến trúc MVC (và PHP7) - Kiểm thử đơn vị (rất nhanh trên HHVM) - Tài liệu tốt nhất - Mức trừu tượng cao - Khả năng nạp chồng phương thức (Overloading) sử dụng phương pháp động - Rất nhiều chức năng bổ sung - Tích hợp thanh toán với stripe - Các gói mã hóa rất mạnh - Hỗ trợ ORM (ánh xạ CSDL sang các đối tượng trong các ngôn ngữ lập trình hướng đối tượng) - Không làm việc trên các host chia sẻ - Thực hiện nhiều truy vấn trên cơ sở dữ liệu 5.5.9 Phalcon - Nhanh chóng với chi phí thấp - Tự động tải - Duy nhất ở chỗ nó được dựa trên C-extension - Các tính năng bảo mật rất tốt được tích hợp sẵn - Rất nhiều tài liệu - Thân thiện với người phát triển - Không phải mã nguồn mở - Các lỗi phải chờ để được vá bởi các nhà phát triển Phalcon - Không hoạt động với nền tảng HHVM (máy ảo xử lý code PHP) 5.3 Symphony - Hiệu suất cao, do kỹ thuật đệm byte code - Ổn định - Nhiều tài liệu - Hỗ trợ rất tốt và kỹ càng · Không hỗ trợ đầy đủ kiến trúc MVC 5.5.9 CodeIgniter - Rất thân thiện với người phát triển, không cần bất kỳ sự phụ thuộc hoặc hỗ trợ đặc biệt nào - Khả năng sử dụng tốt các dịch vụ lưu trữ web thông thường, sử dụng các cơ sở dữ liệu chuẩn như MySQL - Xuất sắc hơn hầu hết các framework khác (không phải MVC) - Tài liệu tốt và hỗ trợ dài hạn - Không có không gian tên, tuy nhiên điều này có thể tăng tốc độ - Không thân thiện với kiểm thử đơn vị như những framework khác - Ít thư viện được xây dựng bên trong 5.4 CakePHP - Framework mới - Hệ thống dựng sẵn giúp xây dựng nhanh - Rất tốt cho các ứng dụng web thương mại - Các tính năng Database Access, Caching, Validation, Authentication được tích hợp sẵn - Công cụ bảo vệ mở rộng bao gồm cross site - Phòng ngừa scripting, SQL Injection - Tài liệu tốt - Phát triển tích cực - Không tốt cho xây dựng các API theo kiến trúc REST (Restful APIS) như Laravel hay các framework khác trong danh sách 5.5.9 Zend - Lý tưởng cho các ứng dụng doanh nghiệp - Hướng đối tượng - Rất nhiều các thành phần cho validation, feeds và forms - Không lý tưởng để phát triển ứng dụng nhanh 5.3 Trong báo cáo tốt nghiûp (Samra, 2015) ngành Khoa học máy týnh, Đäi học Linneus, tác giâ Jone Samra đã so sánh hiûu nëng cûa PHP thuæn và 4 framework PHP là Laravel, Symfony, CodeIgniter, Phalcon vĆi các đo lþąng thąi gian thăc hiûn, sā dýng bộ nhĆ và số lþợng các hàm đþợc gọi trong thăc nghiûm vĆi một Āng dýng web blog. Køt quâ thăc nghiûm giĂa các framework trên cho thçy: (1) V÷ thąi gian thăc hiûn, vĆi các hành động täo, đọc, cêp nhêt, xoá, Phalcon đät køt quâ nhanh nhçt (10-17 ms), tëng hĄn vĆi CodeIgniter (28-45 ms), tëng mänh vĆi Laravel (726-815 ms), và Symfony (591-1.110 ms). (2) V÷ sā dýng bộ nhĆ dùng cho các hành động trên, Phalcon cho køt quâ tốt nhçt (0,16- 0,18 MB), tëng hĄn vĆi CodeIgniter (2,13-2,14 MB), tëng mänh vĆi Laravel (8,67-9,53 MB), cao nhçt là Symfony (11,93-15,68 MB) (3) V÷ số lþợng hàm đþợc gọi xét trên têp hành động, Phalcon tốt nhçt vĆi chþ 202-256 hàm, kø đøn là CodeIgniter vĆi 260-279 hàm, số Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang 661 lþợng trên lĆn hĄn hîn ć Laravel vĆi 1.194- 1.310 hàm và Symfony vĆi 1.055-1.967 hàm. Køt quâ chþ ra Phalcon và CodeIgniter có thąi gian thăc hiûn và sā dýng bộ nhĆ tốt hĄn nhi÷u so vĆi Laravel và Symfony, giúp chúng ta có thêm một tham khâo tốt khi muốn lăa chọn một framework đù phát triùn web. Nghiên cĀu cûa nhóm tác giâ (Mon, 2014) đã công bố một độ đo khâ nëng tái sā dýng các class và module đù do chçt lþợng cûa ngôn ngĂ kĀch bân PHP. Các script thþąng cæn phâi thăc hiûn các hành động giống nhau ć một số nĄi khác nhau trong script. Nên khâ nëng tái sā dýng mĀc cao là một mýc tiêu quan trọng cæn đät đþợc trong phát triùn một hû thống phæn m÷m. Theo đĂ, độ đo khâ nëng tái sā dýng là tổng cûa số lþợng các include và các require, số lþợng các thành phæn thÿa kø đối tþợng, và kích thþĆc giao diûn class. Kø thÿa nghiên cĀu trên, nhóm tác giâ (Li & cs., 2017) đã công bố køt quâ nghiên cĀu thăc nghiûm đù so sánh hiûu nëng và khâ nëng tái sā dýng đối vĆi 3 framework PHP là CakePHP, Laravel và CodeIgniter. Một hû thống PHP gồm một bâng đi÷u khiùn và 3 Āng dýng PHP đþợc phát triùn đù thăc nghiûm. Các Āng dýng chäy läi cùng một token bìng cách sā dýng læn lþợt 3 framework trên. Một têp hợp các điùm đo lþąng đþợc tích hợp vĆi tÿng Āng dýng. Các tác vý đþợc dùng đù đo hiûu nëng gồm (1) đọc/ghi các file vën bân, (2) tâi lön và lþu các ânh lên web server, (3) nhên lþợng dĂ liûu lĆn tÿ cĄ sć dĂ liûu và hiùn thĀ chúng trong một bâng và (4) các hoät động vĆi cĄ sć dĂ liûu - køt nối, chèn, xoá, cêp nhêt. Køt quâ nghiên cĀu chþ ra rìng, nhìn chung CodeIgniter có hiûu nëng tốt nhçt và Cake PHP có hiûu nëng kòm nhçt. Tuy nhiên, khâ nëng tái sā dýng cûa CakePHP cĂ điùm cao nhçt. Đi÷u này cho thçy hiûu nëng và khâ nëng tái sā dýng là không có quan hû tþ lû vĆi nhau. V÷ tốc độ đọc ghi các file vën bân thì Laravel cho køt quâ nhanh nhçt. Chúng tôi mć rộng so sánh hiûu nëng xòt trên khía cänh tốc độ đáp Āng cûa 4 loäi framework PHP có dùng phiên bân PHP mĆi 7.2 là Laravel 5.x, Symfony 4.x, Zend 3.x và CakePHP 3.x nhìm giúp ngþąi đọc có nhĂng góc nhün đa chi÷u nhçt v÷ các framework PHP. Thăc nghiûm đþợc tiøn hành vĆi công cý tích hợp trên trang PHP Benchmarks (Php- Benchmarks, 2018). Hû thống đo sā dýng một server chuyên dýng vĆi hû đi÷u hành Ubuntu server 16.04 LTS 64 bits, bộ vi xā lý Intel(R) Xeon(R) CPU D-1531 @ 2.20GHz (6 cores, 12 threads), bộ nhĆ RAM 32 GB DDR4 ECC, ổ cĀng loäi SSD, cài web server nginx 1.10.3. Benchmark này sā dýng thang điùm 10.000 vĆi cách týnh nhþ sau: 5 benchmark tốt nhçt cêp nhêt điùm. Điùm càng cao nghÿa là công cý có khâ nëng đáp Āng càng nhanh. Mỗi loäi benchmark (Hello World, REST API) cĂ đù đät điùm tối đa là 10.000 cho mỗi đồng thąi (1, 5, 10 và 20). Điùm này đþợc nhân vĆi tỷ lû thąi gian nhanh nhçt so vĆi tçt câ các thąi gian chêm hĄn cûa các framework khác tÿ cùng loäi benchmark đù týnh điùm cho các framework đĂ. Ví dý: Symfony 4.1 mçt 57.510 ms (nhanh hĄn tçt câ các framework) đù hoàn thành benchmark Hello World. Symfony 4.0 mçt 58.383 ms cho cùng benchmark. Symfony 4.1 sô đþợc 10.000 điùm và Symfony 4.0 đþợc 9.850 điùm (bìng 57.510 * 10.000 / 58.383). Tổng điùm cho mỗi framework sô đþợc cộng tçt câ điùm tÿ tçt câ các loäi benchmark và tçt câ các điùm đồng thąi. Køt quâ đþợc thù hiûn nhþ ć hình 7 cho thçy các phiên bân Symfony 4.x vþợt trội so vĆi các framework còn läi v÷ tốc độ đáp Āng. Đåy là một tham khâo tốt đù lăa chọn framework Symfony cho nhĂng Āng dýng mà lþợng tâi lĆn lön server đāi hăi tốc độ đáp Āng nhanh nhçt. Nói chung, mỗi framework trên tốt nhçt có thù đþợc phân loäi vào nhóm các framework PHP đþợc phát triùn hoàn thiûn, thþ viûn độc lêp, cho các Āng dýng web đæy đû týnh nëng hoðc vào nhóm các framework nhă, phù hợp đù làm mọi thĀ đĄn giân, đù xây dăng các REST API hoðc các Āng dýng web cĄ bân. Cuối cùng, tùy thuộc vào ngþąi phát triùn đù quyøt đĀnh xem framework nào là phù hợp nhçt cho dă án và kỹ nëng cûa họ. Đánh giá những framework PHP tốt nhất cho phát triển web hiện đại và một số ứng dụng tại Học viện Nông nghiệp Việt Nam 662 Hình 7. Bâng xếp hạng điểm hiệu năng của 4 loại f
Tài liệu liên quan