Tải bản đầy đủ (.pdf) (11 trang)

Đá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ạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.17 MB, 11 trang )

Vietnam J. Agri. Sci. 2019, Vol. 17, No. 8: 655-665

Tp chớ Khoa hc Nụng nghip Vit Nam 2019, 17(8): 655-665
www.vnua.edu.vn

NH GI NHNG FRAMEWORK PHP TT NHT CHO PHT TRIN WEB HIN I
V MT S NG DNG TI HC VIN NễNG NGHIP VIT NAM
Phm Quang Dng1*, Nguyn Th Tho1, Trn Th Giang2
1

Khoa Cụng ngh thụng tin, Hc vin Nụng nghip Vit Nam
2
Khoa Thỳ y, Hc vin Nụng nghip Vit Nam
*

Tỏc gi liờn h:
Ngy chp nhn ng: 29.10.2019

Ngy nhn bi: 26.02.2018
TểM TT

T khi ngụn ng lp trỡnh phớa server PHP ra i, nú luụn c cng ng ngi phỏt trin ng dng web a
chung bi tớnh hiu qu, d s dng. Hin nay, PHP vn ang l ngụn ng lp trỡnh web ph bin nht trờn th
gii. S xut hin ca cỏc framework PHP cung cp cho nhng ngi phỏt trin web s tin dng, hiu qu cng
nh tit kim thi gian v cụng sc khi phỏt trin nhng trang web chuyờn nghip nh cỏc tớnh nng ó tớch hp
sn. Nghiờn cu tng quan ca chỳng tụi tng hp nhng xu hng s dng cụng ngh lp trỡnh web, ỏnh giỏ u
im, nhc im ca 6 framework PHP tt nht c thng kờ t nhng t chc, cỏ nhõn uy tớn v ỏng tin cy.
T ú, chỳng tụi a ra nhng gi ý cho nhng ngi phỏt trin web cú th la chn mt framework thớch hp nht
vi kh nng ca mỡnh cng nh vi yờu cu ca ng dng web cn phỏt trin. Phn cui, bi bỏo gii thiu hai ng
dng web ca chỳng tụi l nhng trng hp nghiờn cu riờng.
T khúa: PHP framework, phỏt trin 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 VN
Theo t chc chuyờn nghiờn cu 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ứ gii. Trong 1
triỷu website c lỵng truy cờp ln nhỗt thỡ cú
ứn 41,57% website s dýng cụng nghỷ PHP
(Hỡnh 1). Nhng website ln v ni tiứng ton
thứ gii nhỵ cỏc mọng xó hi Facebook,
Wikipedia, Yahoo, nhng kho õnh/mó ngun chia

sú Photobucket, Fotolia, Flickr, Istock,
SourceForge, nhng hỷ quõn tr ni dung (CMS)
v blog ph biứn nhỗt thứ gii nhỵ WordPress,
Tumblr ữu ỵc xõy dng trờn PHP
(Simplified-Techy, 2018). Cựng vi s phỏt triựn

cỷa PHP, cỏc framework h tr cỹng khụng
ngng cõi tiứn, cọnh tranh ự em ứn cho
nhng ngỵi lờp trỡnh s h tr tt nhỗt v cho
ngỵi dựng web s trõi nghiỷm duyỷt web tc
nhanh v thuờn tiỷn nhỗt.

655


ỏnh giỏ nhng framework PHP tt nht cho phỏt trin web hin i v mt s ng dng ti Hc vin Nụng nghip
Vit Nam

Hỡnh 1. Top 5 cụng ngh phỏt trin web hin nay
Trong nhng nởm gổn ồy, 6 framework
PHP phỏt triựn nhỗt thứ gii (Codemarts, 2015)
(Value-Coders, 2018) gm cú Laravel, Phalcon,
Symfony, CodeIgniter, CakePHP v Zen. Trong
bi bỏo ny, chỳng tụi gii thiỷu v so sỏnh c
iựm gm cõ ỵu iựm v nhỵc iựm cỷa nhng
framework nờu trờn nhỡm giỳp ngỵi c cú cỏi
nhỡn khỏ tng quan v giỳp ngỵi lờp trỡnh web
xem xột la chn framework phự hp cho mỡnh.

2. NHNG FRAMEWORK PHP C S
DNG NHIU NHT
2.1. Framework v mụ hỡnh MVC
Framework l mt b mó ngun ỵc xõy
dng, phỏt triựn v ng gi - phõn phi bi cỏc
chuyờn gia lờp trỡnh hoc bi cỏc cụng ty lờp
trỡnh. Nú cung cỗp mt cỗu trỳc phỏt triựn

chuốn ự nhng ngỵi lờp trỡnh da vo xồy
dng v phỏt triựn cỏc d ỏn. i kủm theo n l
mt kho thỵ viỷn gm nhiữu lp/hm x lý ỵc
t trong cỏc gúi hoc 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 dng cỏc lp x lý
mt cỏch ti ỵu nhỗt, giõi quyứt cỏc bi toỏn lờp
trỡnh nhanh chúng v chớnh xỏc. Cỏc lp trong
mt framework sụ lm viỷc tt nhỗt vi cỗu trỳc
chuốn m framework cung cỗp.
PHP l mt ngụn ng kch bõn mọnh mụ
dựng ự xõy dng 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 tt nhỵ:

656

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 dng theo
chuốn mụ hỡnh MVC (Model - View - Controller)
v cung cỗp nhiữu lp 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, dch vý, khi cỏc lờp trỡnh viờn sụ
xõy dng, phỏt triựn website mt cỏch dỳ dng
v nhanh chúng.
PHP framework lm cho s phỏt triựn cỷa
nhng ng dýng web viứt bỡng ngụn ng PHP
tr nờn trụi chõy hn, bỡng cỏch cung cỗp mt
cỗu trỳc c bõn ự xõy dng nhng ng dýng

. Hay ni 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 thi
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ó. Ngoi ra,
framework cũn giỳp nhng ngỵi mi bớt ổu cú
thự xõy dng cỏc ng dýng n nh hn nh viỷc
tỵng tỏc chýnh xỏc gia cỏc c s d liỷu, mó
(PHP) v giao diỷn (HTML) mt cỏch riờng biỷt.
iữu ny cho phộp h dnh nhiữu thi gian ự
tọo ra cỏc ng dýng web, trỏnh lóng phớ
thi gian ự viứt cỏc oọn mó lp lọi trong mt
d ỏn.
í tỵng chung ỡng sau cỏch thc lm viỷc
cỷa mt PHP framework ỵc kự ứn l ModelView - Controller (MVC). MVC l mt 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) thnh cỏc phổn riờng biỷt, iữu ny ng


Phm Quang Dng, Nguyn Th Tho, Trn Th Giang

ngha vi viỷc ta cú thự chỵnh sa chỳng mt
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ý
lp giao diỷn (presentation layer) v Controller
lm nhiỷm vý lc cỏc yờu cổu ỵc gi t user,
cú chc nởng nhỵ mt route: iữu chỵnh, phõn
lung cỏc yờu cổu ự gi ỳng Model v View

thớch hp. Vữ c bõn, MVC chia nh quỏ trỡnh
x lý cỷa mt ng dýng, vỡ thứ ngỵi phỏt triựn
cú thự lm viỷc trờn tng thnh phổn riờng lú,
trong khi nhng thnh phổn khỏc sụ khụng b
õnh hỵng ti.
2.2. Xu hng s dng cỏc framework PHP
Trong phổn ny, chỳng tụi thc hiỷn cỏc
iữu tra ự c ỵc nhng d liỷu cý thự vữ xu
hỵng m cng ng tỡm hiựu vữ cỏc framework
PHP cỹng nhỵ thng kờ t lỷ cỏc framework
ỵc s dýng trong thc tứ nhỵ thứ no. T ,
chỳng tụi sụ tờp trung ỏnh giỏ mt s
framework PHP ph biứn nhỗt nhỡm em ứn
cho bọn c nhng thụng tin hu ých ự quyứt
nh la chn s dýng framework no cho
nhng d ỏn cỷa mỡnh.
Vi mýc ých xem xột nhng framework
PHP no ỵc quan tõm tỡm kiứm nhiữu nhỗt
trờn thứ gii trong nhng nởm gổn ồy, chỳng
tụi s dýng khõo sỏt vi Google Trends, vi la
chn tham s thi 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 vi ỵng
xu hỵng tởng rỗt cao (Google-Trends, 2019).
Trờn trýc tung cỷa th, giỏ tr 100 l mc ph
biứn (s quan tõm tỡm kiứm) cao nhỗt. Giỏ tr
50 c ngha l mc ph biứn bỡng mt na. Cũn
mc 0 l khụng ỷ d liỷu ự ỏnh giỏ.

bỵc tiứp theo, chỳng tụi tỡm nhng kứt
quõ khõo sỏt cý thự, ỏng tin cờy vữ t lỷ m
mi framework ỵc s dýng. Mt khõo sỏt ó
thc hiỷn bi GitHub [ nởm
2015 vữ top 10 framework PHP ỵc s dýng
nhiữu nhỗt trờn thứ gii. Kứt quõ ny (Hỡnh 4)
ỵc ữ cờp trờn cỏc blog vữ lờp trỡnh ni tiứng
l Codemarts (Codemarts, 2015) v Cụng ty
phỏt triựn phổn mữm ValueCoders (ValueCoders, 2018) cỷa n s dýng lm cởn c
ỏnh giỏ ự ữ xuỗt nhng framework PHP tt
nhỗt cho nởm 2019.
Mt khõo sỏt khỏc ỵc tiứn hnh mi ồy
bi mt blog hỵng dộn lờp trỡnh l Coders Eye
vi khoõng 7.500 thnh viửn ởng ký. Khõo sỏt
ó hi nhng ngỵi ởng ký vữ cỏc cõu hi
chuyửn sồu nhỵ s dýng cý thự cỷa xỏc thc,
mó ha phiửn, cỏc phỵng thc lỵu tr cache v
nh tuyứn. Kứt quõ ỵc liỷt kử dỵi ồy sụ chỵ
l nhng framework PHP ỵc s dýng hng
ổu (Hỹnh 5). Danh sỏch ny khỏ tỵng ng
vi thng kờ cỷa GitHub cho thỗy tớnh cú thự tin
cờy ỵc vữ tớnh ph biứn cỷa nhng framework
ny trong cng ng ngỵi lờp trỡnh web.

Ngun: Tech-Talk, 2016

Hỡnh 2. Mụ hỡnh thit k Model-View-Controller

657



ỏnh giỏ nhng framework PHP tt nht cho phỏt trin web hin i v mt s ng dng ti Hc vin Nụng nghip
Vit Nam

Hỡnh 3. So sỏnh s quan tõm tỡm kim ca cng ng ti 5 framework PHP ph bin

Hỡnh 4. Th phn cỏc framework PHP nm 2015 thng kờ bi GitHub

3. TNG QUAN 6 FRAMEWORK HNG U
Qua kứt quõ nhng nghiờn cu trờn, chỳng
tụi chn 6 framework PHP hng ổu l Laravel,
Phalcon, Symfony, CodeIgniter, CakePHP v
Zen ự gii thiỷu v ỏnh giỏ nhng ỵu, nhỵc
iựm. ồy l nhng 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

658

dựng nhng framework tt nhỗt (SukritInfotech, 2018).

4. NH GI HIU NNG CA MT S
FRAMEWORK HNG U
ự giỳp bọn c cú cỏi nhỡn tng quan vữ
hiỷu nởng mt s framework PHP nờu trờn,
trong phổn ny, chỳng tụi tng hp kứt quõ


Phm Quang Dng, Nguyn Th Tho, Trn Th Giang


nghiờn cu cỷa mt s nhúm tỏc giõ ó cụng b,
cỹng nhỵ phỵng phỏp v kứt quõ mt th
nghiỷm ỏnh giỏ chỳng tụi ó tiứn hnh. 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ý: tc
ỏp ng nhanh (thi gian ỏp ng nh), dung
lỵng b nh s dýng thỗp, khõ nởng tỏi s
dýng mó ngun cao.
ứn thi iựm hiỷn tọi, trờn thứ gii vộn
thiứu cỏc o hay cụng cý o mt 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 kch bõn PHP cỹng nhỵ cỷa cỏc
framework PHP. Nghiờn cu 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 (objectrelational mapping, ORM) i vi 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 lc ln

(stress testing) ó ỵc ỏp dýng. Kứt quõ cỷa
nghiờn cu ny chỵ ra rỡng CodeIgniter thc thi
tt hn trong iữu kiỷn tõi thụng thỵng, nhỵng
trong iữu kiỷn tõi ỏp lc ln thỡ CakePHP lọi
tt hn. CodeIgniter tt hn i vi cỏc ng
dýng va v nh. Nú x lý ỵc ýt ngỵi s dýng
ng thi hn (nh hn 500). i vi cỏc ng
dýng ln cú nhiữu ngỵi dựng ng thi, t 600
user tr lờn thỡ CakePHP thỗp hn hợn
CodeIgniter vữ thi gian ỏp ng. iữu ny l
do týnh nởng ORM c trong CakePHP, lm tởng
nởng suỗt, khõ nởng duy trỹ v tỏi s dýng cỷa

mó ngun. Cũn CodeIgniter chỵ chọy cỏc truy
vỗn SQL n giõn ự giao tiứp vi c s d liỷu,
nửn ọt hiỷu quõ trong cỏc trỵng hp 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ụ ln,
c lỵng giao tiứp c s d liỷu cc ln.

Ngun: Code-Eyes, 2018

Hỡnh 5. Th phn cỏc framework PHP nm 2018 thng kờ
trờn cỏc thnh viờn ca Coders Eye

Hỡnh 6. Sỏu framework PHP hng u c Cụng ty CNTT Sukrit (n ) khuyờn dựng

659


ỏnh giỏ nhng framework PHP tt nht cho phỏt trin web hin i v mt s ng dng ti Hc vin Nụng nghip
Vit Nam

Bõng 1. u im v nhc im ca 6 framework PHP hng u th gii nm 2018
(Phiờn bõn PHP ỵc yờu cổu cho mi framework ỵc xột tọi thi iựm nởm 2018)
Phiờn bn PHP
c yờu cu

u im

Nhc im

Laravel


- Mó ngun m
- T chc tp tin v mó ngun
- Phỏt trin ng dng nhanh chúng
- Kin trỳc MVC (v PHP7)
- Kim th n v (rt nhanh trờn HHVM)
- Ti liu tt nht
- Mc tru tng cao
- Kh nng np chng phng thc (Overloading) s
dng phng phỏp ng
- Rt nhiu chc nng b sung
- Tớch hp thanh toỏn vi stripe
- Cỏc gúi mó húa rt mnh
- H tr ORM (ỏnh x CSDL sang cỏc i tng trong cỏc
ngụn ng lp trỡnh hng i tng)

- Khụng lm vic trờn cỏc host
chia s
- Thc hin nhiu truy vn trờn c
s d liu

5.5.9

Phalcon

- Nhanh chúng vi chi phớ thp
- T ng ti
- Duy nht ch nú c da trờn C-extension
- Cỏc tớnh nng bo mt rt tt c tớch hp sn
- Rt nhiu ti liu

- Thõn thin vi ngi phỏt trin

- Khụng phi mó ngun m
- Cỏc li phi ch c vỏ bi
cỏc nh phỏt trin Phalcon
- Khụng hot ng vi nn tng
HHVM (mỏy o x lý code PHP)

5.3

Symphony

- Hiu sut cao, do k thut m byte code
- n nh
- Nhiu ti liu
- H tr rt tt v k cng

ã Khụng h tr y kin trỳc
MVC

CodeIgniter

- Rt thõn thin vi ngi phỏt trin, khụng cn bt k s
ph thuc hoc h tr c bit no
- Kh nng s dng tt cỏc dch v lu tr web thụng
thng, s dng cỏc c s d liu chun nh MySQL
- Xut sc hn hu ht cỏc framework khỏc (khụng phi
MVC)
- Ti liu tt v h tr di hn


- Khụng cú khụng gian tờn, tuy
nhiờn iu ny cú th tng tc
- Khụng thõn thin vi kim th
n v nh nhng framework
khỏc
- t th vin c xõy dng bờn
trong

5.4

CakePHP

- Framework mi
- H thng dng sn giỳp xõy dng nhanh
- Rt tt cho cỏc ng dng web thng mi
- Cỏc tớnh nng Database Access, Caching, Validation,
Authentication c tớch hp sn
- Cụng c bo v m rng bao gm cross site
- Phũng nga scripting, SQL Injection
- Ti liu tt
- Phỏt trin tớch cc

- Khụng tt cho xõy dng cỏc API
theo kin trỳc REST (Restful
APIS) nh Laravel hay cỏc
framework khỏc trong danh sỏch

5.5.9

Zend


- Lý tng cho cỏc ng dng doanh nghip
- Hng i tng
- Rt nhiu cỏc thnh phn cho validation, feeds v forms

- Khụng lý tng phỏt trin
ng dng nhanh

Framework

Trong bỏo cỏo tt nghiỷp (Samra, 2015)
ngnh Khoa hc mỏy týnh, ọi hc 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 vi cỏc o lỵng
thi gian thc hiỷn, s dýng b nh v s lỵng
cỏc hm ỵc gi trong thc nghiỷm vi mt ng
dýng web blog. Kứt quõ thc nghiỷm gia cỏc
framework trờn cho thỗy:
(1) Vữ thi gian thc hiỷn, vi cỏc hnh
ng tọo, c, cờp nhờt, xoỏ, Phalcon ọt kứt

660

5.5.9

5.3

quõ nhanh nhỗt (10-17 ms), tởng hn vi
CodeIgniter (28-45 ms), tởng mọnh vi Laravel

(726-815 ms), v Symfony (591-1.110 ms).
(2) Vữ s dýng b nh dựng cho cỏc hnh
ng trờn, Phalcon cho kứt quõ tt nhỗt (0,160,18 MB), tởng hn vi CodeIgniter (2,13-2,14
MB), tởng mọnh vi Laravel (8,67-9,53 MB), cao
nhỗt l Symfony (11,93-15,68 MB)
(3) Vữ s lỵng hm ỵc gi xột trờn tờp
hnh ng, Phalcon tt nhỗt vi chỵ 202-256
hm, kứ ứn l CodeIgniter vi 260-279 hm, s


Phm Quang Dng, Nguyn Th Tho, Trn Th Giang

lỵng trờn ln hn hợn Laravel vi 1.1941.310 hm v Symfony vi 1.055-1.967 hm.
Kứt quõ chỵ ra Phalcon v CodeIgniter cú
thi gian thc hiỷn v s dýng b nh tt hn
nhiữu so vi Laravel v Symfony, giỳp chỳng ta
cú thờm mt tham khõo tt khi mun la chn
mt framework ự phỏt triựn web.
Nghiờn cu cỷa nhúm tỏc giõ (Mon, 2014)
ó cụng b mt o khõ nởng tỏi s dýng cỏc
class v module ự do chỗt lỵng cỷa ngụn ng
kch bõn PHP. Cỏc script thỵng cổn phõi thc
hiỷn cỏc hnh ng ging nhau mt s ni
khỏc nhau trong script. Nờn khõ nởng tỏi s
dýng mc cao l mt mýc tiờu quan trng cổn
ọt ỵc trong phỏt triựn mt hỷ thng phổn
mữm. Theo , o khõ nởng tỏi s dýng l
tng cỷa s lỵng cỏc include v cỏc require, s
lỵng cỏc thnh phổn tha kứ i tỵng, v kớch
thỵc giao diỷn class.

Kứ tha nghiờn cu trờn, nhúm tỏc giõ (Li
& cs., 2017) ó cụng b kứt quõ nghiờn cu thc
nghiỷm ự so sỏnh hiỷu nởng v khõ nởng tỏi s
dýng i vi 3 framework PHP l CakePHP,
Laravel v CodeIgniter. Mt hỷ thng PHP gm
mt bõng iữu khiựn v 3 ng dýng PHP ỵc
phỏt triựn ự thc nghiỷm. Cỏc ng dýng chọy
lọi cựng mt token bỡng cỏch s dýng lổn lỵt 3
framework trờn. Mt tờp hp cỏc iựm o lỵng
ỵc tớch hp vi tng ng dýng. Cỏc tỏc vý
ỵc dựng ự o hiỷu nởng gm (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 ln t c s d
liỷu v hiựn th chỳng trong mt bõng v (4) cỏc
hoọt ng vi c s d liỷu - kứt ni, chốn, xoỏ,
cờp nhờt. Kứt quõ nghiờn cu chỵ ra rỡng, nhỡn
chung CodeIgniter cú hiỷu nởng tt 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 ny cho thỗy hiỷu nởng v khõ nởng
tỏi s dýng l khụng cú quan hỷ tỵ lỷ vi nhau.
Vữ tc c ghi cỏc file vởn bõn thỡ Laravel
cho kứt quõ nhanh nhỗt.
Chỳng tụi m rng so sỏnh hiỷu nởng xũt
trờn khớa cọnh tc ỏp ng cỷa 4 loọi
framework PHP cú dựng phiờn bõn PHP mi 7.2
l Laravel 5.x, Symfony 4.x, Zend 3.x v

CakePHP 3.x nhỡm giỳp ngỵi c cú nhng gúc
nhỹn a chiữu nhỗt vữ cỏc framework PHP.

Thc nghiỷm ỵc tiứn hnh vi cụng cý tớch
hp trờn trang PHP Benchmarks (PhpBenchmarks, 2018). Hỷ thng o s dýng mt
server chuyờn dýng vi hỷ iữu hnh 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,
cng loọi SSD, ci web server nginx 1.10.3.
Benchmark ny s dýng thang iựm 10.000 vi
cỏch týnh nhỵ sau:
5 benchmark tt nhỗt cờp nhờt iựm. iựm
cng cao ngha l cụng cý cú khõ nởng ỏp ng
cng nhanh. Mi loọi benchmark (Hello World,
REST API) c ự ọt iựm ti a l 10.000 cho
mi ng thi (1, 5, 10 v 20). iựm ny ỵc
nhõn vi t lỷ thi gian nhanh nhỗt so vi tỗt cõ
cỏc thi gian chờm hn 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
hn tỗt cõ cỏc framework) ự hon thnh
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).
Tng iựm cho mi framework sụ ỵc cng
tỗt cõ iựm t tỗt cõ cỏc loọi benchmark v tỗt
cõ cỏc iựm ng thi.
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 tri so vi
cỏc framework cũn lọi vữ tc ỏp ng. ồy l

mt tham khõo tt ự la chn framework
Symfony cho nhng ng dýng m lỵng tõi ln
lửn server i hi tc ỏp ng nhanh nhỗt.
Núi chung, mi framework trờn tt nhỗt cú
thự ỵc phõn loọi vo nhúm cỏc framework
PHP ỵc phỏt triựn hon thiỷn, thỵ viỷn c
lờp, cho cỏc ng dýng web ổy ỷ týnh nởng
hoc vo nhúm cỏc framework nh, phự hp ự
lm mi th n giõn, ự xõy dng cỏc REST
API hoc cỏc ng dýng web c bõn. Cui cựng,
tựy thuc vo ngỵi phỏt triựn ự quyứt nh
xem framework no l phự hp nhỗt cho d ỏn
v k nởng cỷa h.

661


ỏnh giỏ nhng framework PHP tt nht cho phỏt trin web hin i v mt s ng dng ti Hc vin Nụng nghip
Vit Nam

Hỡnh 7. Bõng xp hng im hiu nng ca 4 loi framework s dng PHP 7.2
Cú mt s lý do m mt ngỵi phỏt triựn
mun chn mt framework, ỏng chỳ ý nhỗt l
vỡ chỳng cung cỗp mt ỵng dộn nhanh hiỷu
quõ, cú cỗu trỳc ự phỏt triựn cỏc ng dýng
web hoc 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
chc nởng ph biứn nhỵ bõo mờt v xỏc thc,
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 cu k vữ tng framework
trỵc khi quyứt nh s dýng cỏi no cho d ỏn
tiứp theo.

5. MT S NG DNG TI HC VIN
Trong thi ọi ngy nay, cụng nghỷ thụng
tin ỵc ng dýng rng rói vo nhiữu lnh vc.
Chỳng tụi ó theo nh hỵng nghiờn cu ng
dýng nhỡm phỏt triựn nhng sõn phốm ng
dýng hu ớch trong thc tứ. Trong nởm va qua,
chỳng tụi ó phỏt triựn mt s ng dýng web,
trong c 2 ng dýng s dýng framework PHP
trong s ó gii thiỷu trờn. Vi ng dýng T
iựn Bỏch khoa Nụng nghiỷp, lỵng ngỵi dựng
ng thi khụng ln v cỹng khụng phõi c ghi
tỷp nửn framework CodeIgniter ỵc la chn.
Vi ng dýng th hai, hỷ thng quõn lý vởn bõn
hnh chớnh, thỡ cỏc tỏc vý c ghi tỷp, upload

662

õnh lửn server ỵc thc hiỷn thỵng xuyờn nờn
chỳng tụi ó la chn 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 nhng ng dýng ó ỵc triựn
khai trong thc tứ nhỵng chỵa ỵc cụng b
trong bi bỏo no.
5.1. T in Bỏch khoa Nụng nghip
Vit Nam
Cun 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
sc v tri thc cỷa rỗt nhiữu nh khoa hc,
giõng viờn trong v ngoi Hc viỷn. Vi mong
mun mang tri thc mt cỏch dỳ dng hn,
chỳng tụi ó xồy dng T iựn trc tuyứn ny
vi 7.408 mýc t, cỏc hỡnh õnh minh ha ỵc
tỡm kiứm v chn lc cốn thờn.
Cụng nghỷ ỵc la chn phỏt triựn cho ng
dýng ny l CodeIgniter vỡ tớnh thõn thiỷn i
vi ngỵi phỏt triựn, gn nhừ, cỹng h tr tt 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. Vi CodeIgniter,
chỳng tụi ó xồy dng sõn phốm ny khỏ nhanh
chúng v cụng khai tọi a chỵ />tudiennn/. Mt s hỡnh õnh vữ ng dýng ny
nhỵ hỡnh 8. Kứt quõ s dýng t iựn trong
thc tứ cho thỗy s chớnh xỏc v n nh.


Phm Quang Dng, Nguyn Th Tho, Trn Th Giang

(a) Mt giao din ỏp ng kớch thc mn hỡnh in thoi
cho chc nng tra cu t

(b) Cu trỳc th mc lp trỡnh ng dng
theo mụ hỡnh MVC

Hỡnh 8. ng dng T in Bỏch khoa Nụng nghip Vit Nam, s dng CodeIgniter
5.2. Phn mm quõn lý vn bõn hnh chớnh
T lồu, chỳng ta ó ni ứn hnh chớnh
iỷn t, nhỵng thc tứ nhiữu ni vộn cn ang

quõn lý vởn bõn c bõn l theo cỏch thỷ cụng.
Trong mụi trỵng lm viỷc cỗp trỵng ọi hc,
thờm chớ thỗp hn l cỗp khoa, lỵng vởn bõn
ứn v i rỗt ln, liửn quan ứn nhiữu ngỵi. Vi
ng dýng quõn lý vởn bõn hnh chớnh cú thự
giỳp ổu mi vởn phng cỹng nhỵ nhng ngỵi
quõn lý nhờn vởn bõn c ỵc s tiỷn dýng bỗt
kự thi gian v v trớ, tiứt kiỷm ỵc ỏng kự
thi gian v cụng sc phõn phi vởn bõn ự bỏo
cỏo hay triựn khai cụng viỷc.
Chỳng tụi ó la chn framework Laravel
ự phỏt triựn phổn mữm ny do n ó cờp nhờt
phiờn bõn PHP 7, nhờn ỵc s tớn nhiỷm ln t
cng ng trong thi gian gổn ồy, lỵng ti liỷu
phong phỳ, cỹng nhỵ s h tr tt mụ hỡnh
MVC v hỷ quõn tr CSDL MySQL. Nhng iữu
õm bõo rỡng chỳng tụi sụ dỳ dng tỹm ỵc

s h tr trong khi xõy dng cỹng nhỵ phỏt
triựn ng dýng sau ny. Hiỷn tọi, phổn mữm
ang
ỵc
triựn
khai
tọi
a
chỵ
ự quõn lý vởn bõn
tọi Khoa Thỳ y (Hỡnh 9). Vữ mt k thuờt, phổn
mữm sau khi ỵc xõy dng ó thự hiỷn ỵc

cỏc ỵu iựm m cỏc nghiờn cu ó 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 mn hỡnh khỏc nhau.

6. KT LUN
Trong bi bỏo ny, chỳng tụi ó tng hp 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 nhng framework
PHP ph biứn nhỗt, cỹng l tt nhỗt thi iựm
hiỷn tọi, da trờn s tng hp v phõn tớch t
nhiữu ngun ỏng tin cờy. Qua , ngỵi phỏt
triựn ng dýng web c cởn c la chn
framework hp lý vi mỹnh ự theo ui lõu di
hoc s dýng thớch hp cho tng d ỏn cý thự.

663


ỏnh giỏ nhng framework PHP tt nht cho phỏt trin web hin i v mt s ng dng ti Hc vin Nụng nghip
Vit Nam

(a) Mt giao din ỏp ng kớch thc mn hỡnh in thoi
cho chc nng qun lý cụng vn n

(b) Cu trỳc th mc lp trỡnh
ng dng ca Laravel

Hỡnh 9. ng dng Quõn lý vn bõn hnh chớnh, s dng framework Laravel
Quyứt nh s dýng framework no phý

thuc vo nhiữu yứu t. Ngỵi phỏt triựn xem
xột cỏc khớa cọnh nhỵ tc , dỳ s dýng, cỏc
týnh nởng sùn cú, ti liỷu, yờu cổu cỏc ti
nguyửn trửn host hay c lờp. Khõ nởng m
rng cỹng l mt iữu cổn cõn nhớc nứu ngỵi
phỏt triựn k vng s phỏt triựn vỵt quỏ khõ
nởng cỷa mt phiờn bõn ng dýng cỷa h.
Dự Laravel chiứm v trớ tng thự ổu tiờn
trong danh sỏch cỷa chỳng tụi xột vữ h tr lõu
di, quy mụ cng ng v nhng ngỵi ng gp,
tớnh linh hoọ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 cng
ng phỏt triựn web nhỵ Laravel.

664

Hóy luụn chớc chớn kiựm tra cng ng
hoc cụng ty ng sau s phỏt triựn cỷa tng
framework ự õm bõo n ỵc duy trỡ tớch cc
v tt nhỗt l cú h tr di họn, iữu ny sụ õm
bõo nú vộn ỵc cờp nhờt v h tr trong
tỵng lai.

TI LIU THAM KHO
Mon C.T.K.M.M. (2014). Framework for Evaluating
Reusability of PHP. International Conference on
Advances in Engineering and Technology
(ICAET'2014).
/>E03140345.

Code-Eyes (2018). 11 Best PHP Frameworks for
Modern Web Developers in 2019. Truy cp t


Phạm Quang Dũng, Nguyễn Thị Thảo, Trần Thị Giang

ngày 12/1/2018.
Codemarts (2015). 10 Top PHP Frameworks of 2015.
Truy cập từ ngày 12/6/2018.
Google-Trends (2019). Compare Interest over time of
the five PHP frameworks in last 5 years. Truy cập từ
/>day%205-y&q=%2Fm%2F0jwy148,%2Fm%2F09
cjcl,%2Fm%2F02qgdkj,%2Fm%2F09t3sp,Zend,
ngày 12/03/2019.
Li X., Karnan S. & Chishti J.A. (2017). An empirical
study of three PHP frameworks. 2017 4 th
International Conference on Systems and
Informatics (ICSAI). pp. 1636-1640.
Munir A.F.M. (2014). Performance Evaluation of PHP
Frameworks (CakePHP and CodeIgniter) in
relation to the Object-Relational Mapping, with
respect to Load Testing, Master thesis, Blekinge
Institute of Technology.

Php-Benchmarks (2018). Benchmark protocol. Truy
cập từ />mark-protocol.html, ngày 12/9/2018.
Samra J. (2015). Comparing performance of plain PHP
and four of its popular frameworks, Bachelor
thesis, Linneus University.
Simplified-Techy (2018). Top 10 PHP Sites: Most

Popular Websites Based On PHP. Truy cập từ
/>ngày 12/06/2018.
Sukrit-Infotech (2018). Top 6 PHP frameworks for web
development in 2018. Truy cập từ https://www.
sukritinfotech.com/blog/top-6-php-frameworksweb-development-2018.html/, ngày 12/3/2019.
Tech-Talk (2016). Tổng quan về MV, AngularJS,
Setup. Truy cập từ ngày 12/02/2019.
Value-Coders (2018). 15 Top PHP Frameworks For
Startups | 2019. Truy cập từ ue
coders.com/blog/technology-and-apps/top-popular
-php-frameworks-web-dev/, ngày 12/6/2018.

665



×