1. Trang chủ
  2. » Công Nghệ Thông Tin

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

11 72 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 1,17 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

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 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 3

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

Trang 4

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â

Trang 5

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

Trang 6

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)

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 7

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

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 8

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

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ừ

Ngày đăng: 11/01/2020, 19:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w