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.
Trang 1ĐÁ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
1Khoa Công nghệ thông tin, Học viện Nông nghiệp Việt Nam
2Khoa Thú y, Học viện Nông nghiệp Việt Nam
*Tác giả liên hệ: pqdung@vnua.edu.vn
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
Trang 2Hì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 quỳt các bài tố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ã Ngồ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 độ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
Trang 3nghÿ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
Trang 4Hì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â
Trang 5nghiê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
Trang 6Bâ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)
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
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ố
Trang 7lþợ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
hột động vĆi cĄ sć dĂ liûu - køt nối, chèn, xố,
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 lộ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 lộ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 lộ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 lộ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) đù hồ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 lộ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 lội vào nhĩm các framework PHP đþợc phát triùn hồ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 đù quỳt đĀnh xem framework nào là phù hợp nhçt cho dă án
và kỹ nëng cûa họ
Trang 8Hì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
muốn chọn một framework, đáng chú ý nhçt là
vì chúng cung cçp một đþąng dén nhanh hiûu
quâ, có cçu trúc đù phát triùn các Āng dýng
web hoðc các API Các framework đâm bâo
rìng mã không cæn đþợc viøt nhi÷u læn cho các
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
và các nhu cæu khác Ngþąi phát triùn nên
luôn luôn nghiên cĀu kỹ v÷ tÿng framework
trþĆc khi quyøt đĀnh sā dýng cái nào cho dă án
tiøp theo
5 MỘT SỐ ỨNG DỤNG TẠI HỌC VIỆN
Trong thąi đäi ngày nay, công nghû thông
tin đþợc Āng dýng rộng rãi vào nhi÷u lÿnh văc
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
dýng hĂu ích trong thăc tø Trong nëm vÿa qua,
chúng tôi đã phát triùn một số Āng dýng web,
trong đĂ cĂ 2 Āng dýng sā dýng framework PHP
trong số đã giĆi thiûu ć trên VĆi Āng dýng Tÿ
điùn Bách khoa Nông nghiûp, lþợng ngþąi dùng
đồng thąi không lĆn và cüng không phâi đọc ghi
tûp nön framework CodeIgniter đþợc lăa chọn
VĆi Āng dýng thĀ hai, hû thống quân lý vën bân
hành chính, thì các tác vý đọc ghi tûp, upload
ânh lön server đþợc thăc hiûn thþąng xuyên nên chúng tôi đã lăa chọn framework rçt phổ biøn
và hiûu quâ bêc nhçt cho các tác vý trên là Laravel Đåy là nhĂng Āng dýng đã đþợc triùn khai trong thăc tø nhþng chþa đþợc công bố trong bài báo nào
5.1 Từ điển Bách khoa Nông nghiệp Việt Nam
Cuốn Tÿ điùn Bách khoa Nông nghiûp Viût Nam (tái bân nëm 2014) là sân phèm tÿ công 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 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 vĆi 7.408 mýc tÿ, các hình ânh minh họa đþợc tìm kiøm và chọn lọc cèn thên
Công nghû đþợc lăa chọn phát triùn cho Āng dýng này là CodeIgniter vì tính thân thiûn đối vĆi ngþąi phát triùn, gọn nhõ, cüng hỗ trợ tốt mô hình lêp trình MVC tiên tiøn, cùng hû quân trĀ
cĄ sć dĂ liûu chuèn MySQL VĆi CodeIgniter, chúng tôi đã xåy dăng sân phèm này khá nhanh chóng và công khai täi đĀa chþ http://vitc.edu.vn/ tudiennn/ Một số hình ânh v÷ Āng dýng này nhþ ć hình 8 Køt quâ sā dýng tÿ điùn trong thăc tø cho thçy să chính xác và ổn đĀnh
Trang 9(a) Một giao diện đáp ứng kích thước màn hình điện thoại
cho chức năng tra cứu từ
(b) Cấu trúc thư mục lập trình ứng dụng
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
5.2 Phần mềm quân lý văn bân hành chính
Tÿ låu, chúng ta đã nĂi đøn hành chính
điûn tā, nhþng thăc tø nhi÷u nĄi vén cān đang
quân lý vën bân cĄ bân là theo cách thû công
Trong môi trþąng làm viûc cçp trþąng đäi học,
thêm chí thçp hĄn là cçp khoa, lþợng vën bân
đøn và đi rçt lĆn, liön quan đøn nhi÷u ngþąi VĆi
Āng dýng quân lý vën bân hành chính có thù
giúp đæu mối vën phāng cüng nhþ nhĂng ngþąi
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ù
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
Chúng tôi đã lăa chọn framework Laravel
đù phát triùn phæn m÷m này do nĂ đã cêp nhêt
phiên bân PHP 7, nhên đþợc să tín nhiûm lĆn tÿ
cộng đồng trong thąi gian gæn đåy, lþợng tài liûu
phong phú, cüng nhþ să hỗ trợ tốt mô hình
MVC và hû quân trĀ CSDL MySQL NhĂng đi÷u
đĂ đâm bâo rìng chúng tôi sô dú dàng tüm đþợc
să hỗ trợ trong khi xây dăng cüng nhþ phát triùn Āng dýng sau này Hiûn täi, phæn m÷m
http://vitc.edu.vn/vanban/ đù quân lý vën bân täi Khoa Thú y (Hình 9) V÷ mðt kỹ thuêt, phæn m÷m sau khi đþợc xây dăng đã thù hiûn đþợc các þu điùm mà các nghiên cĀu đã chþ ra nhþ đáp Āng nhanh các tác vý yêu cæu tÿ phýa ngþąi
sā dýng, giao diûn đáp Āng mþợt trên các kích thþĆc màn hình khác nhau
6 KẾT LUẬN
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
và khâ nëng tái sā dýng cûa nhĂng framework PHP phổ biøn nhçt, cüng là tốt nhçt ć thąi điùm hiûn täi, dăa trên să tổng hợp và phân tích tÿ nhi÷u nguồn đáng tin cêy Qua đĂ, ngþąi phát triùn Āng dýng web cĂ cën cĀ lăa chọn framework hợp lý vĆi münh đù theo đuổi lâu dài hoðc sā dýng thích hợp cho tÿng dă án cý thù
Trang 10(a) Một giao diện đáp ứng kích thước màn hình điện thoại
cho chức năng quản lý cơng văn đến (b) Cấu trúc thư mục lập trình ứ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
Quỳt đĀnh sā dýng framework nào phý
thuộc vào nhi÷u ỳu tố Ngþąi phát triùn xem
xét các khía cänh nhþ tốc độ, dú sā dýng, các
týnh nëng sïn cĩ, tài liûu, yêu cỉu các tài
nguyưn trưn host hay độc lêp Khâ nëng mć
rộng cüng là một đi÷u cỉn cân nhíc nøu ngþąi
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ọ
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
dài, quy mơ cộng đồng và nhĂng ngþąi đĂng gĂp,
tính linh hột, nhþng Phalcon đĀng ngay vĀ trí
thĀ hai Lý do duy nhçt mà Phalcon xuçt hiûn ć
vĀ trí thĀ hai vü nĂ khơng tëng mänh trong cộng
đồng phát triùn web nhþ Laravel
Hãy luơn chíc chín kiùm tra cộng đồng hoðc cơng ty đĀng sau să phát triùn cûa tÿng framework đù đâm bâo nĂ đþợc duy trì tích căc
và tốt nhçt là cĩ hỗ trợ dài hän, đi÷u này sơ đâm bâo nĩ vén đþợc cêp nhêt và hỗ trợ trong tþĄng lai
TÀI LIỆU THAM KHẢO
Mon C.T.K.M.M (2014) Framework for Evaluating Reusability of PHP International Conference on
E03140345
Code-Eyes (2018) 11 Best PHP Frameworks for Modern Web Developers in 2019 Truy cập từ