Đá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

  • 1 month ago
  • 0 lượt xem
  • 0 bình luận

  • Ít hơn 1 phút để đọc

Giới thiệu

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.

Thông tin tài liệu

Loại file: PDF , dung lượng : 1.17 M, số trang : 11 ,tên

Xem mẫu

Chi tiết

  1. 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 ĐÁ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 ĐỀ só Photobucket, Fotolia, Flickr, Istock, SourceForge, nhĂng hû quân trĀ nội dung (CMS) Theo tổ chĀc chuyên nghiên cĀu công nghû và blog phổ biøn nhçt thø giĆi nhþ WordPress, đþợc các website sā dýng là BuiltWith cûa Tumblr đ÷u đþợc xây dăng trên PHP 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 (Simplified-Techy, 2018). Cùng vĆi să phát triùn triûu website cĂ lþợng truy cêp lĆn nhçt thì có cûa PHP, các framework hỗ trợ cüng không đøn 41,57% website sā dýng công nghû PHP ngÿng câi tiøn, cänh tranh đù đem đøn cho (Hình 1). NhĂng website lĆn và nổi tiøng toàn nhĂng ngþąi lêp trình să hỗ trợ tốt nhçt và cho thø giĆi nhþ các mäng xã hội Facebook, ngþąi dùng web să trâi nghiûm duyût web tốc độ Wikipedia, Yahoo, nhĂng kho ânh/mã nguồn chia nhanh và thuên tiûn nhçt. 655
  2. Đá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 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 Zend, Symfony, Yii, Codeigniter, Laravel… đþợc PHP phát triùn nhçt thø giĆi (Codemarts, 2015) rçt nhi÷u ngþąi phát triùn þa thých và sā dýng. (Value-Coders, 2018) gồm có Laravel, Phalcon, Các PHP framework thþąng đþợc xây dăng theo Symfony, CodeIgniter, CakePHP và Zen. Trong chuèn mô hình MVC (Model - View - Controller) bài báo này, chúng tôi giĆi thiûu và so sánh đðc và cung cçp nhi÷u lĆp hỗ trợ xā lý v÷ bâo mêt, điùm gồm câ þu điùm và nhþợc điùm cûa nhĂng phân quy÷n, captcha, trình quân lý mô đun, cĄ framework nêu trên nhìm giúp ngþąi đọc có cái sć dĂ liûu, dĀch vý,… khi đĂ các lêp trình viên sô nhìn khá tổng quan và giúp ngþąi lêp trình web xây dăng, phát triùn website một cách dú dàng xem xét lăa chọn framework phù hợp cho mình. và nhanh chóng. PHP framework làm cho să phát triùn cûa 2. NHỮNG FRAMEWORK PHP ĐƯỢC SỬ nhĂng Āng dýng web viøt bìng ngôn ngĂ PHP DỤNG NHIỀU NHẤT 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 2.1. Framework và mô hình MVC đĂ. Hay nĂi cách khác, PHP framework giúp Framework là một bộ mã nguồn đþợc xây ngþąi phát triùn thúc đèy nhanh chóng quá dăng, phát triùn và đĂng gĂi - phân phối bći các trình phát triùn Āng dýng, tiøt kiûm đþợc thąi chuyên gia lêp trình hoðc bći các công ty lêp gian, tëng să ổn đĀnh cho Āng dýng và giâm trình. Nó cung cçp một cçu trúc phát triùn thiùu số læn phâi viøt läi mã. Ngoài ra, chuèn đù nhĂng ngþąi lêp trình dăa vào đĂ xåy framework còn giúp nhĂng ngþąi mĆi bít đæu có dăng và phát triùn các dă án. Đi kñm theo nĂ là thù xây dăng các Āng dýng ổn đĀnh hĄn nhą viûc một kho thþ viûn gồm nhi÷u lĆp/hàm xā lý đþợc tþĄng tác chýnh xác giĂa các cĄ sć dĂ liûu, mã đðt trong các gói hoðc không gian tên riêng. Các (PHP) và giao diûn (HTML) một cách riêng biût. chuyên gia lêp trình sā dýng nhi÷u kỹ thuêt lêp Đi÷u này cho phép họ dành nhi÷u thąi gian đù trình và giâi thuêt đù xây dăng các lĆp xā lý täo ra các Āng dýng web, tránh lãng phí một cách tối þu nhçt, giâi quyøt các bài toán lêp thąi gian đù viøt các đoän mã lðp läi trong một trình nhanh chóng và chính xác. Các lĆp trong dă án. một framework sô làm viûc tốt nhçt vĆi cçu trúc Ý tþćng chung đìng sau cách thĀc làm viûc chuèn mà framework đĂ cung cçp. cûa một PHP framework đþợc kù đøn là Model- PHP là một ngôn ngĂ kĀch bân mänh mô View - Controller (MVC). MVC là một mô hình dùng đù xây dăng website, phæn m÷m cloud, (kiøn trúc) trong lêp trình, cho phép tách biût hay dùng đù lêp trình server và hiûn nay nó các mã nghiûp vý (business logic) và giao diûn cüng đang cĂ rçt nhi÷u framework tốt nhþ: (UI) thành các phæn riêng biût, đi÷u này đồng 656
  3. Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang nghÿa vĆi viûc ta có thù chþnh sāa chúng một khác đ÷u cĂ xu hþĆng bĀ giâm să quan tâm thì cách riêng ló. Trong cým tÿ MVC thì: Model (M) Laravel läi đþợc tìm kiøm nhi÷u nhçt vĆi đþąng có thù hiùu là phæn xā lý các thao tác v÷ nghiûp xu hþĆng tëng rçt cao (Google-Trends, 2019). vý (business logic), View đþợc hiùu là phæn xā lý Trên trýc tung cûa đồ thĀ, giá trĀ 100 là mĀc phổ lĆp giao diûn (presentation layer) và Controller biøn (să quan tâm tìm kiøm) cao nhçt. Giá trĀ làm nhiûm vý lọc các yêu cæu đþợc gọi tÿ user, 50 cĂ nghÿa là mĀc phổ biøn bìng một nāa. Còn có chĀc nëng nhþ một route: đi÷u chþnh, phân mĀc 0 là không đû dĂ liûu đù đánh giá. luồng các yêu cæu đù gọi đúng Model và View Ở bþĆc tiøp theo, chúng tôi tìm nhĂng køt thích hợp. V÷ cĄ bân, MVC chia nhă quá trình quâ khâo sát cý thù, đáng tin cêy v÷ tỷ lû mà xā lý cûa một Āng dýng, vì thø ngþąi phát triùn mỗi framework đþợc sā dýng. Một khâo sát đã có thù làm viûc trên tÿng thành phæn riêng ló, thăc hiûn bći GitHub [https://github.com/] nëm trong khi nhĂng thành phæn khác sô không bĀ 2015 v÷ top 10 framework PHP đþợc sā dýng ânh hþćng tĆi. 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 2.2. Xu hướng sử dụng các framework PHP là Codemarts (Codemarts, 2015) và Công ty Trong phæn này, chúng tôi thăc hiûn các phát triùn phæn m÷m ValueCoders (Value- đi÷u tra đù cĂ đþợc nhĂng dĂ liûu cý thù v÷ xu Coders, 2018) cûa Ấn Độ sā dýng làm cën cĀ hþĆng mà cộng đồng tìm hiùu v÷ các framework đánh giá đù đ÷ xuçt nhĂng framework PHP tốt PHP cüng nhþ thống kê tỷ lû các framework đĂ nhçt cho nëm 2019. đþợc sā dýng trong thăc tø nhþ thø nào. Tÿ đĂ, Một khâo sát khác đþợc tiøn hành mĆi đåy chúng tôi sô têp trung đánh giá một số bći một blog hþĆng dén lêp trình là Coders Eye framework PHP phổ biøn nhçt nhìm đem đøn vĆi khoâng 7.500 thành viön đëng ký. Khâo sát cho bän đọc nhĂng thông tin hĂu ých đù quyøt đã hăi nhĂng ngþąi đëng ký v÷ các câu hăi đĀnh lăa chọn sā dýng framework nào cho chuyön såu nhþ sā dýng cý thù cûa xác thăc, nhĂng dă án cûa mình. mã hĂa phiön, các phþĄng thĀc lþu trĂ cache và VĆi mýc đých xem xét nhĂng framework đĀnh tuyøn. Køt quâ đþợc liût kö dþĆi đåy sô chþ PHP nào đþợc quan tâm tìm kiøm nhi÷u nhçt là nhĂng framework PHP đþợc sā dýng hàng trên thø giĆi trong nhĂng nëm gæn đåy, chúng đæu (Hünh 5). Danh sách này khá tþĄng đồng tôi sā dýng khâo sát vĆi Google Trends, vĆi lăa vĆi thống kê cûa GitHub cho thçy tính có thù tin chọn tham số thąi gian là 5 nëm gæn đåy. Køt cêy đþợc v÷ tính phổ biøn cûa nhĂng framework quâ (Hình 3) cho thçy trong khi các 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 657
  4. Đá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 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 dùng nhĂng framework tốt nhçt (Sukrit- 3. TỔNG QUAN 6 FRAMEWORK HÀNG ĐẦU Infotech, 2018). 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, 4. ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ Phalcon, Symfony, CodeIgniter, CakePHP và FRAMEWORK HÀNG ĐẦU Zen đù giĆi thiûu và đánh giá nhĂng þu, nhþợc điùm. Đåy là nhĂng framework PHP đþợc sā Đù giúp bän đọc có cái nhìn tổng quan v÷ dýng nhi÷u nhçt trong nhi÷u nëm gæn đåy, hiûu nëng một số framework PHP nêu trên, cüng nhþ đĀng đæu trong nhi÷u trang khuyên trong phæn này, chúng tôi tổng hợp køt quâ 658
  5. Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang nghiên cĀu cûa một số nhóm tác giâ đã công bố, (stress testing) đã đþợc áp dýng. Køt quâ cûa cüng nhþ phþĄng pháp và køt quâ một thā nghiên cĀu này chþ ra rìng CodeIgniter thăc thi nghiûm đánh giá chúng tôi đã tiøn hành. Hiûu tốt hĄn trong đi÷u kiûn tâi thông thþąng, nhþng nëng cûa các framework cûa các ngôn ngĂ lêp trong đi÷u kiûn tâi áp lăc lĆn thì CakePHP läi trünh thþąng đþợc đánh giá trön các tiöu chý: tốc tốt hĄn. CodeIgniter tốt hĄn đối vĆi các Āng độ đáp Āng nhanh (thąi gian đáp Āng nhă), dung dýng vÿa và nhă. Nó xā lý đþợc ýt ngþąi sā dýng lþợng bộ nhĆ sā dýng thçp, khâ nëng tái sā đồng thąi hĄn (nhă hĄn 500). Đối vĆi các Āng dýng mã nguồn cao. dýng lĆn có nhi÷u ngþąi dùng đồng thąi, tÿ 600 Đøn thąi điùm hiûn täi, trên thø giĆi vén user trć lên thì CakePHP thçp hĄn hîn thiøu các độ đo hay công cý đo một cách đĀnh CodeIgniter v÷ thąi gian đáp Āng. Đi÷u này là lþợng các khía cänh nhìm xác đĀnh chçt lþợng do týnh nëng ORM cĂ trong CakePHP, làm tëng cûa ngôn ngĂ kĀch bân PHP cüng nhþ cûa các nëng suçt, khâ nëng duy trü và tái sā dýng cûa framework PHP. Nghiên cĀu cûa (Munir, 2014) mã nguồn. Còn CodeIgniter chþ chäy các truy đã so sánh và phån tých ânh hþćng cûa tính vçn SQL đĄn giân đù giao tiøp vĆi cĄ sć dĂ liûu, nëng ánh xä quan hû đối tþợng (object- nön đät hiûu quâ trong các trþąng hợp tâi bình relational mapping, ORM) đối vĆi hiûu nëng cûa thþąng. Vì vêy, các framework có hỗ trợ ORM CakePHP và CodeIgniter. PhþĄng pháp thā tâi nön đþợc sā dýng cho các Āng dýng quy mô lĆn, bünh thþąng (load testing) và thā tâi áp lăc 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 659
  6. Đá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 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) Phiên bản PHP Framework Ưu điểm Nhược điểm được yêu cầu Laravel - Mã nguồn mở - Không làm việc trên các host 5.5.9 - Tổ chức tệp tin và mã nguồn chia sẻ - Phát triển ứng dụng nhanh chóng - Thực hiện nhiều truy vấn trên cơ - Kiến trúc MVC (và PHP7) sở dữ liệu - 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) Phalcon - Nhanh chóng với chi phí thấp - Không phải mã nguồn mở 5.3 - Tự động tải - Các lỗi phải chờ để được vá bởi - Duy nhất ở chỗ nó được dựa trên C-extension các nhà phát triển Phalcon - Các tính năng bảo mật rất tốt được tích hợp sẵn - Không hoạt động với nền tảng - Rất nhiều tài liệu HHVM (máy ảo xử lý code PHP) - Thân thiện với người phát triển Symphony - Hiệu suất cao, do kỹ thuật đệm byte code · Không hỗ trợ đầy đủ kiến trúc 5.5.9 - Ổn định MVC - Nhiều tài liệu - Hỗ trợ rất tốt và kỹ càng CodeIgniter - Rất thân thiện với người phát triển, không cần bất kỳ sự - Không có không gian tên, tuy 5.4 phụ thuộc hoặc hỗ trợ đặc biệt nào nhiên điều này có thể tăng tốc độ - Khả năng sử dụng tốt các dịch vụ lưu trữ web thông - Không thân thiện với kiểm thử thường, sử dụng các cơ sở dữ liệu chuẩn như MySQL đơn vị như những framework - Xuất sắc hơn hầu hết các framework khác (không phải khác MVC) - Ít thư viện được xây dựng bên - Tài liệu tốt và hỗ trợ dài hạn trong CakePHP - Framework mới - Không tốt cho xây dựng các API 5.5.9 - Hệ thống dựng sẵn giúp xây dựng nhanh theo kiến trúc REST (Restful - Rất tốt cho các ứng dụng web thương mại APIS) như Laravel hay các - Các tính năng Database Access, Caching, Validation, framework khác trong danh sách 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 Zend - Lý tưởng cho các ứng dụng doanh nghiệp - Không lý tưởng để phát triển 5.3 - Hướng đối tượng ứng dụng nhanh - Rất nhiều các thành phần cho validation, feeds và forms Trong báo cáo tốt nghiûp (Samra, 2015) quâ nhanh nhçt (10-17 ms), tëng hĄn vĆi ngành Khoa học máy týnh, Đäi học Linneus, tác CodeIgniter (28-45 ms), tëng mänh vĆi Laravel giâ Jone Samra đã so sánh hiûu nëng cûa PHP (726-815 ms), và Symfony (591-1.110 ms). thuæn và 4 framework PHP là Laravel, (2) V÷ sā dýng bộ nhĆ dùng cho các hành Symfony, CodeIgniter, Phalcon vĆi các đo lþąng động trên, Phalcon cho køt quâ tốt nhçt (0,16- thąi gian thăc hiûn, sā dýng bộ nhĆ và số lþợng 0,18 MB), tëng hĄn vĆi CodeIgniter (2,13-2,14 các hàm đþợc gọi trong thăc nghiûm vĆi một Āng MB), tëng mänh vĆi Laravel (8,67-9,53 MB), cao dýng web blog. Køt quâ thăc nghiûm giĂa các nhçt là Symfony (11,93-15,68 MB) framework trên cho thçy: (3) V÷ số lþợng hàm đþợc gọi xét trên têp (1) V÷ thąi gian thăc hiûn, vĆi các hành hành động, Phalcon tốt nhçt vĆi chþ 202-256 động täo, đọc, cêp nhêt, xoá, Phalcon đät køt hàm, kø đøn là CodeIgniter vĆi 260-279 hàm, số 660
  7. Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang lþợng trên lĆn hĄn hîn ć Laravel vĆi 1.194- CakePHP 3.x nhìm giúp ngþąi đọc có nhĂng góc 1.310 hàm và Symfony vĆi 1.055-1.967 hàm. nhün đa chi÷u nhçt v÷ các framework PHP. Køt quâ chþ ra Phalcon và CodeIgniter có Thăc nghiûm đþợc tiøn hành vĆi công cý tích thąi gian thăc hiûn và sā dýng bộ nhĆ tốt hĄn hợp trên trang PHP Benchmarks (Php- nhi÷u so vĆi Laravel và Symfony, giúp chúng ta Benchmarks, 2018). Hû thống đo sā dýng một có thêm một tham khâo tốt khi muốn lăa chọn server chuyên dýng vĆi hû đi÷u hành Ubuntu một framework đù phát triùn web. server 16.04 LTS 64 bits, bộ vi xā lý Intel(R) Nghiên cĀu cûa nhóm tác giâ (Mon, 2014) Xeon(R) CPU D-1531 @ 2.20GHz (6 cores, 12 đã công bố một độ đo khâ nëng tái sā dýng các threads), bộ nhĆ RAM 32 GB DDR4 ECC, ổ class và module đù do chçt lþợng cûa ngôn ngĂ cĀng loäi SSD, cài web server nginx 1.10.3. kĀch bân PHP. Các script thþąng cæn phâi thăc Benchmark này sā dýng thang điùm 10.000 vĆi hiûn các hành động giống nhau ć một số nĄi cách týnh nhþ sau: khác nhau trong script. Nên khâ nëng tái sā 5 benchmark tốt nhçt cêp nhêt điùm. Điùm dýng mĀc cao là một mýc tiêu quan trọng cæn càng cao nghÿa là công cý có khâ nëng đáp Āng đät đþợc trong phát triùn một hû thống phæn càng nhanh. Mỗi loäi benchmark (Hello World, m÷m. Theo đĂ, độ đo khâ nëng tái sā dýng là REST API) cĂ đù đät điùm tối đa là 10.000 cho tổng cûa số lþợng các include và các require, số mỗi đồng thąi (1, 5, 10 và 20). Điùm này đþợc lþợng các thành phæn thÿa kø đối tþợng, và kích nhân vĆi tỷ lû thąi gian nhanh nhçt so vĆi tçt câ thþĆc giao diûn class. các thąi gian chêm hĄn cûa các framework khác Kø thÿa nghiên cĀu trên, nhóm tác giâ (Li tÿ cùng loäi benchmark đù týnh điùm cho các & cs., 2017) đã công bố køt quâ nghiên cĀu thăc framework đĂ. nghiûm đù so sánh hiûu nëng và khâ nëng tái sā Ví dý: Symfony 4.1 mçt 57.510 ms (nhanh dýng đối vĆi 3 framework PHP là CakePHP, hĄn tçt câ các framework) đù hoàn thành Laravel và CodeIgniter. Một hû thống PHP gồm benchmark Hello World. Symfony 4.0 mçt một bâng đi÷u khiùn và 3 Āng dýng PHP đþợc 58.383 ms cho cùng benchmark. Symfony 4.1 sô phát triùn đù thăc nghiûm. Các Āng dýng chäy đþợc 10.000 điùm và Symfony 4.0 đþợc 9.850 läi cùng một token bìng cách sā dýng læn lþợt 3 điùm (bìng 57.510 * 10.000 / 58.383). framework trên. Một têp hợp các điùm đo lþąng Tổng điùm cho mỗi framework sô đþợc cộng đþợc tích hợp vĆi tÿng Āng dýng. Các tác vý tçt câ điùm tÿ tçt câ các loäi benchmark và tçt đþợc dùng đù đo hiûu nëng gồm (1) đọc/ghi các câ các điùm đồng thąi. file vën bân, (2) tâi lön và lþu các ânh lên web Køt quâ đþợc thù hiûn nhþ ć hình 7 cho server, (3) nhên lþợng dĂ liûu lĆn tÿ cĄ sć dĂ thçy các phiên bân Symfony 4.x vþợt trội so vĆi liûu và hiùn thĀ chúng trong một bâng và (4) các các framework còn läi v÷ tốc độ đáp Āng. Đåy là hoät động vĆi cĄ sć dĂ liûu - køt nối, chèn, xoá, một tham khâo tốt đù lăa chọn framework cêp nhêt. Køt quâ nghiên cĀu chþ ra rìng, nhìn Symfony cho nhĂng Āng dýng mà lþợng tâi lĆn chung CodeIgniter có hiûu nëng tốt nhçt và lön server đāi hăi tốc độ đáp Āng nhanh nhçt. Cake PHP có hiûu nëng kòm nhçt. Tuy nhiên, Nói chung, mỗi framework trên tốt nhçt có khâ nëng tái sā dýng cûa CakePHP cĂ điùm cao thù đþợc phân loäi vào nhóm các framework nhçt. Đi÷u này cho thçy hiûu nëng và khâ nëng PHP đþợc phát triùn hoàn thiûn, thþ viûn độc tái sā dýng là không có quan hû tþ lû vĆi nhau. lêp, cho các Āng dýng web đæy đû týnh nëng V÷ tốc độ đọc ghi các file vën bân thì Laravel hoðc vào nhóm các framework nhă, phù hợp đù cho køt quâ nhanh nhçt. làm mọi thĀ đĄn giân, đù xây dăng các REST Chúng tôi mć rộng so sánh hiûu nëng xòt API hoðc các Āng dýng web cĄ bân. Cuối cùng, trên khía cänh tốc độ đáp Āng cûa 4 loäi tùy thuộc vào ngþąi phát triùn đù quyøt đĀnh framework PHP có dùng phiên bân PHP mĆi 7.2 xem framework nào là phù hợp nhçt cho dă án là Laravel 5.x, Symfony 4.x, Zend 3.x và và kỹ nëng cûa họ. 661
  8. Đá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 Hình 7. Bâng xếp hạng điểm hiệu năng của 4 loại framework sử dụng PHP 7.2 Có một số lý do mà một ngþąi phát triùn ânh lön server đþợc thăc hiûn thþąng xuyên nên muốn chọn một framework, đáng chú ý nhçt là chúng tôi đã lăa chọn framework rçt phổ biøn vì chúng cung cçp một đþąng dén nhanh hiûu và hiûu quâ bêc nhçt cho các tác vý trên là quâ, có cçu trúc đù phát triùn các Āng dýng Laravel. Đåy là nhĂng Āng dýng đã đþợc triùn web hoðc các API. Các framework đâm bâo khai trong thăc tø nhþng chþa đþợc công bố rìng mã không cæn đþợc viøt nhi÷u læn cho các trong bài báo nào. chĀc nëng phổ biøn nhþ bâo mêt và xác thăc, xā lý cĄ sć dĂ liûu, täo khuôn méu, xā lý URL 5.1. Từ điển Bách khoa Nông nghiệp và các nhu cæu khác. Ngþąi phát triùn nên Việt Nam luôn luôn nghiên cĀu kỹ v÷ tÿng framework Cuốn Tÿ điùn Bách khoa Nông nghiûp Viût trþĆc khi quyøt đĀnh sā dýng cái nào cho dă án Nam (tái bân nëm 2014) là sân phèm tÿ công tiøp theo. sĀc và tri thĀc cûa rçt nhi÷u nhà khoa học, giâng viên trong và ngoài Học viûn. VĆi mong 5. MỘT SỐ ỨNG DỤNG TẠI HỌC VIỆN muốn mang tri thĀc đĂ một cách dú dàng hĄn, chúng tôi đã xåy dăng Tÿ điùn trăc tuyøn này Trong thąi đäi ngày nay, công nghû thông vĆi 7.408 mýc tÿ, các hình ânh minh họa đþợc tin đþợc Āng dýng rộng rãi vào nhi÷u lÿnh văc. tìm kiøm và chọn lọc cèn thên. Chúng tôi đã theo đĀnh hþĆng nghiên cĀu Āng dýng nhìm phát triùn nhĂng sân phèm Āng Công nghû đþợc lăa chọn phát triùn cho Āng dýng hĂu ích trong thăc tø. Trong nëm vÿa qua, dýng này là CodeIgniter vì tính thân thiûn đối chúng tôi đã phát triùn một số Āng dýng web, vĆi ngþąi phát triùn, gọn nhõ, cüng hỗ trợ tốt mô trong đĂ cĂ 2 Āng dýng sā dýng framework PHP hình lêp trình MVC tiên tiøn, cùng hû quân trĀ trong số đã giĆi thiûu ć trên. VĆi Āng dýng Tÿ cĄ sć dĂ liûu chuèn MySQL. VĆi CodeIgniter, điùn Bách khoa Nông nghiûp, lþợng ngþąi dùng chúng tôi đã xåy dăng sân phèm này khá nhanh đồng thąi không lĆn và cüng không phâi đọc ghi chóng và công khai täi đĀa chþ http://vitc.edu.vn/ tûp nön framework CodeIgniter đþợc lăa chọn. tudiennn/. Một số hình ânh v÷ Āng dýng này VĆi Āng dýng thĀ hai, hû thống quân lý vën bân nhþ ć hình 8. Køt quâ sā dýng tÿ điùn trong hành chính, thì các tác vý đọc ghi tûp, upload thăc tø cho thçy să chính xác và ổn đĀnh. 662
  9. Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang (a) Một giao diện đáp ứng kích thước màn hình điện thoại (b) Cấu trúc thư mục lập trình ứng dụng cho chức năng tra cứu từ theo mô hình MVC Hình 8. Ứng dụng Từ điển Bách khoa Nông nghiệp Việt Nam, sử dụng CodeIgniter să hỗ trợ trong khi xây dăng cüng nhþ phát 5.2. Phần mềm quân lý văn bân hành chính triùn Āng dýng sau này. Hiûn täi, phæn m÷m Tÿ låu, chúng ta đã nĂi đøn hành chính đang đþợc triùn khai täi đĀa chþ điûn tā, nhþng thăc tø nhi÷u nĄi vén cān đang http://vitc.edu.vn/vanban/ đù quân lý vën bân quân lý vën bân cĄ bân là theo cách thû công. täi Khoa Thú y (Hình 9). V÷ mðt kỹ thuêt, phæn Trong môi trþąng làm viûc cçp trþąng đäi học, m÷m sau khi đþợc xây dăng đã thù hiûn đþợc thêm chí thçp hĄn là cçp khoa, lþợng vën bân các þu điùm mà các nghiên cĀu đã chþ ra nhþ đøn và đi rçt lĆn, liön quan đøn nhi÷u ngþąi. VĆi đáp Āng nhanh các tác vý yêu cæu tÿ phýa ngþąi Āng dýng quân lý vën bân hành chính có thù sā dýng, giao diûn đáp Āng mþợt trên các kích giúp đæu mối vën phāng cüng nhþ nhĂng ngþąi thþĆc màn hình khác nhau. quân lý nhên vën bân cĂ đþợc să tiûn dýng bçt kù thąi gian và vĀ trí, tiøt kiûm đþợc đáng kù 6. KẾT LUẬN thąi gian và công sĀc phân phối vën bân đù báo cáo hay triùn khai công viûc. Trong bài báo này, chúng tôi đã tổng hợp să đánh giá khá đæy đû khía cänh cûa hiûu nëng Chúng tôi đã lăa chọn framework Laravel và khâ nëng tái sā dýng cûa nhĂng framework đù phát triùn phæn m÷m này do nĂ đã cêp nhêt PHP phổ biøn nhçt, cüng là tốt nhçt ć thąi điùm phiên bân PHP 7, nhên đþợc să tín nhiûm lĆn tÿ hiûn täi, dăa trên să tổng hợp và phân tích tÿ cộng đồng trong thąi gian gæn đåy, lþợng tài liûu nhi÷u nguồn đáng tin cêy. Qua đĂ, ngþąi phát phong phú, cüng nhþ să hỗ trợ tốt mô hình triùn Āng dýng web cĂ cën cĀ lăa chọn MVC và hû quân trĀ CSDL MySQL. NhĂng đi÷u framework hợp lý vĆi münh đù theo đuổi lâu dài đĂ đâm bâo rìng chúng tôi sô dú dàng tüm đþợc hoðc sā dýng thích hợp cho tÿng dă án cý thù. 663
  10. Đá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 (a) Một giao diện đáp ứng kích thước màn hình điện thoại (b) Cấu trúc thư mục lập trình cho chức năng quản lý công văn đến ứng dụng của Laravel Hình 9. Ứng dụng Quân lý văn bân hành chính, sử dụng framework Laravel Quyøt đĀnh sā dýng framework nào phý Hãy luôn chíc chín kiùm tra cộng đồng thuộc vào nhi÷u yøu tố. Ngþąi phát triùn xem hoðc công ty đĀng sau să phát triùn cûa tÿng xét các khía cänh nhþ tốc độ, dú sā dýng, các framework đù đâm bâo nĂ đþợc duy trì tích căc týnh nëng sïn có, tài liûu, yêu cæu các tài và tốt nhçt là có hỗ trợ dài hän, đi÷u này sô đâm nguyön trön host hay độc lêp. Khâ nëng mć bâo nó vén đþợc cêp nhêt và hỗ trợ trong rộng cüng là một đi÷u cæn cân nhíc nøu ngþąi tþĄng lai. phát triùn kỳ vọng să phát triùn vþợt quá khâ nëng cûa một phiên bân Āng dýng cûa họ. TÀI LIỆU THAM KHẢO Dù Laravel chiøm vĀ trí tổng thù đæu tiên trong danh sách cûa chúng tôi xét v÷ hỗ trợ lâu Mon C.T.K.M.M. (2014). Framework for Evaluating Reusability of PHP. International Conference on dài, quy mô cộng đồng và nhĂng ngþąi đĂng gĂp, Advances in Engineering and Technology tính linh hoät, nhþng Phalcon đĀng ngay vĀ trí (ICAET'2014). http://dx.doi.org/10.15242/IIE. thĀ hai. Lý do duy nhçt mà Phalcon xuçt hiûn ć E03140345. vĀ trí thĀ hai vü nĂ không tëng mänh trong cộng Code-Eyes (2018). 11 Best PHP Frameworks for đồng phát triùn web nhþ Laravel. Modern Web Developers in 2019. Truy cập từ 664
  11. Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang https://coderseye.com/best-php-frameworks-for- Php-Benchmarks (2018). Benchmark protocol. Truy web-developers/, ngày 12/1/2018. cập từ http://www.phpbenchmarks.com/en/bench Codemarts (2015). 10 Top PHP Frameworks of 2015. mark-protocol.html, ngày 12/9/2018. Truy cập từ https://codemarts.com/blog/10-top- Samra J. (2015). Comparing performance of plain PHP php-frameworks-of-2015/, ngày 12/6/2018. and four of its popular frameworks, Bachelor thesis, Linneus University. Google-Trends (2019). Compare Interest over time of the five PHP frameworks in last 5 years. Truy cập từ Simplified-Techy (2018). Top 10 PHP Sites: Most https://trends.google.com/trends/explore?Date=to Popular Websites Based On PHP. Truy cập từ https://www.simplifiedtechy.net/top-10-php-sites/, day%205-y&q=%2Fm%2F0jwy148,%2Fm%2F09 ngày 12/06/2018. cjcl,%2Fm%2F02qgdkj,%2Fm%2F09t3sp,Zend, ngày 12/03/2019. Sukrit-Infotech (2018). Top 6 PHP frameworks for web development in 2018. Truy cập từ https://www. Li X., Karnan S. & Chishti J.A. (2017). An empirical sukritinfotech.com/blog/top-6-php-frameworks- study of three PHP frameworks. 2017 4 th web-development-2018.html/, ngày 12/3/2019. International Conference on Systems and Tech-Talk (2016). Tổng quan về MV, AngularJS, Informatics (ICSAI). pp. 1636-1640. Setup. Truy cập từ https://techtalk.vn/tong-quan- Munir A.F.M. (2014). Performance Evaluation of PHP ve-mv-angularjs-setup.html, ngày 12/02/2019. Frameworks (CakePHP and CodeIgniter) in Value-Coders (2018). 15 Top PHP Frameworks For relation to the Object-Relational Mapping, with Startups | 2019. Truy cập từ https://www.value respect to Load Testing, Master thesis, Blekinge coders.com/blog/technology-and-apps/top-popular Institute of Technology. -php-frameworks-web-dev/, ngày 12/6/2018. 665

Download

Xem thêm
Thông tin phản hồi của bạn
Hủy bỏ