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.
11 trang |
Chia sẻ: thanhle95 | Lượt xem: 696 | Lượt tải: 1
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