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

Xây dựng framework hỗ trợ lập trình web luận văn ths công nghệ thông tin

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 (2.83 MB, 51 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

ĐẶNG HẢI AN

XÂY DỰNG FRAMEWORK HỖ TRỢ LẬP TRÌNH WEB

LUẬN VĂN THẠC SĨ
NGÀNH: CÔNG NGHỆ THÔNG TIN

Hà Nội – 2015


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

ĐẶNG HẢI AN

XÂY DỰNG FRAMEWORK HỖ TRỢ LẬP TRÌNH WEB

Ngành
Chuyên ngành
Mã số

: Công nghệ thông tin
: Kỹ thuật phần mềm
: 60480103

LUẬN VĂN THẠC SĨ
NGÀNH: CÔNG NGHỆ THÔNG TIN


NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. TRƢƠNG NINH THUẬN

Hà Nội - 2015


3

LỜI CẢM ƠN
Trước hết, tôi xin gửi lời biết ơn sâu sắc đến người thầy PGS.TS. Trương
Ninh Thuận, thầy đã dành rất nhiều thời gian, tâm huyết hướng dẫn nghiên cứu
và giúp tôi hoàn thành tốt luận văn tốt nghiệp này. Thầy đã có những hướng mở
rất hay và những định hướng nghiên cứu thiết thực, bổ ích, đồng thời tạo điều
kiện thuận lợi nhất cho tôi nghiên cứu.
Tôi cũng xin được bày tỏ lòng biết ơn tới các thầy cô trường Đại học
Công nghệ, Đại học Quốc gia Hà Nội đã tham gia giảng dạy và chia sẻ những
kinh nghiệm quý báu cho tập thể học viên trong khóa nói chung và cá nhân tôi
nói riêng. Tôi xin cảm ơn tới các thầy và các anh chị đã thường xuyên giúp đỡ,
trao đổi, góp ý về những vấn đề khoa học liên quan tới luận văn.
Trên tất cả, tôi xin gửi lời biết ơn tới bố mẹ, gia đình người thân. Bố mẹ
đã phải làm việc vất vả tạo cơ hội và điều kiện thuận nhất giúp tôi toàn tâm toàn
ý thực hiện luận văn và chọn con đường đi của mình.
Một lần nữa, tôi xin chân thành cảm ơn!
Hà Nội, tháng 6 năm 2015
Học viên

Đặng Hải An


4


LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình của riêng tôi. Các số liệu, kết quả nêu
trong Luận văn là vô cùng trung thực, và chưa ai công bố trong bất kỳ công trình
nào khác.
Tôi xin cam đoan các thông tin trích dẫn trong Luận văn đã được chỉ rõ
nguồn gốc.
Học viên thực hiện Luận văn

ĐẶNG HẢI AN


5

MỤC LỤC
LỜI CẢM ƠN ...................................................................................................... 2
LỜI CAM ĐOAN ................................................................................................ 3
MỤC LỤC ............................................................................................................ 4
Danh mục các ký hiệu và chữ viết tắt ................................................................ 6
Danh mục các bảng ............................................................................................. 7
Danh mục hình vẽ, đồ thị .................................................................................... 8
MỞ ĐẦU ............................................................................................................ 10
CHƢƠNG 1. TỔNG QUAN VỀ NỀN TẢNG HỖ TRỢ LẬP TRÌNH ỨNG
DỤNG WEB (WEB APPLICATION FRAMEWORK)................................ 12
1.1. Framework ................................................................................................ 12
1.2. Web Application Framework ................................................................... 12
1.3. PHP Framework ....................................................................................... 14
1.4. Mô hình Model - View - Controller (MVC) ............................................ 14
1.4.1. Lịch sử mô hình MVC ........................................................................ 14
1.4.2. Khái niệm mô hình MVC ................................................................... 15
1.4.3. Các thành phần trong Web Framework ............................................ 16

1.4.3.1. Model .......................................................................................... 16
1.4.3.2. View ............................................................................................ 17
1.4.3.3. Controller .................................................................................... 18
CHƢƠNG 2. XÂY DỰNG THỬ NGHIỆM FRAMEWORK BẰNG NGÔN
NGỮ PHP ........................................................................................................... 20
2.1. Tổng quan về một PHP Framework ......................................................... 20
2.2. Kiến trúc của Framework thử nghiệm ...................................................... 24
2.2.1. Tổng quát về hệ thống thư mục trong Framework thử nghiệm ......... 24
2.2.2. Các thành phần trong Framework thử nghiệm ................................. 26
2.2.2.1. Quy trình xử lý yêu cầu............................................................... 26
2.2.2.2. Các thành phần ............................................................................ 26
2.2.2.3. Các khái niệm khi sử dụng framework thử nghiệm.................... 28
2.3. Hệ thống các lớp thư viện và hàm hỗ trợ trong Framework thử nghiệm . 34
2.3.1. Các lớp thư viện ................................................................................. 34
2.3.1.1. Email (System/Lib/Email.php) ................................................... 34
2.3.1.2. Database library (system/Database/mysql.php).......................... 35
2.3.1.3. Pagination(System/Lib/Pagination.php) ..................................... 36
2.3.1.4. Session class (System/Lib/Session.php) ..................................... 36
2.3.1.5. Upload class (System/Lib/upload.php) ....................................... 36
2.3.1.6. ExportDataExcel class (System/Lib/ExportDataExcel.php) ...... 37


6

2.3.2. Các hàm hỗ trợ .................................................................................. 37
2.3.2.1. Array Helper ............................................................................... 37
2.3.2.2. Text Helper ................................................................................. 38
2.3.2.3. exporttoexcel helper .................................................................... 38
CHƢƠNG 3. XÂY DỰNG ỨNG DỤNG “QUẢN LÝ ĐĂNG KÝ SỬ DỤNG
PHÒNG THỰC HÀNH MÁY TÍNH TRƢỜNG ĐẠI HỌC HẢI DƢƠNG”

SỬ DỤNG FRAMEWORK THỬ NGHIỆM.................................................. 40
3.1. Giới thiệu về quy trình quản lý và sử dụng phòng thực hành. ................. 40
3.2 Phân tích nhu cầu....................................................................................... 40
3.3. Thiết kế hệ thống ...................................................................................... 41
3.3.1. Biểu đồ Use Case ............................................................................... 41
3.3.2. Biểu đồ chi tiết lớp ............................................................................. 43
3.4. Ứng dụng quản lý phòng thực hành ......................................................... 45
KẾT LUẬN ........................................................................................................ 49
TÀI LIỆU THAM KHẢO ................................................................................ 51


7

DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
STT
1
2
3
4
5
6
7
8
9
10
11

Từ viết tắt
CSS
HTTP

MVC
HTML
UI
KDE
SQL
URL
XHTML
I/O
PHP

Ý nghĩa
Cascading Style Sheet
HyperText Transfer Protocol
Model View Controller
HyperText Markup Language
User Interface
K Desktop Environment
Structured Query Language
Uniform Resource Locator
Extensible HyperText Markup Language
Input/Output
Personal Home Page


8

DANH MỤC CÁC BẢNG
Bảng 1.1. Vai trò hệ thống thư mục trong Framework thử nghiệm.................... 24
Bảng 3.1. Danh mục Lớp, phòng ban ................................................................. 43
Bảng 3.2. Danh mục phòng thực hành ................................................................ 44

Bảng 3.3. Danh mục máy/thiết bị trong phòng thực hành .................................. 44
Bảng 3.4. Đăng ký phòng thực hành ................................................................... 45


9

DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 1.1. Mô hình MVC ..................................................................................... 15
Hình 1.2. Biểu đồ tuần tự một chuỗi MVC đơn giản.......................................... 17
Hình 2.1. Mô hình Model – View – Controller trong Zend Framework ............ 20
Hình 2.2. Cấu trúc thư mục của Zend Framework.............................................. 21
Hình 2.3. Cấu trúc hệ thống thư mục Framework thử nghiệm ........................... 25
Hình 2.4. Quy trình xử lý một HTTP Request của Framework thử nghiệm ...... 26
Hình 3.1. Biểu đồ Use Case các tác nhân và mối quan hệ giữa các tác nhân ..... 41
Hình 3.2. Biểu đồ Use Case theo hướng chức năng của tác nhân Admin .......... 42
Hình 3.3. Biểu đồ Use Case theo hướng chức năng của tác nhân Giảng viên.... 42
Hình 3.4. Biểu đồ Use Case theo hướng chức năng của tác nhân Sinh viên ...... 42
Hình 3.5. Biểu đồ Use Case khi tích hợp hệ thống phụ ...................................... 43
Hình 3.6.Giao diện đăng nhập hệ thống.............................................................. 45
Hình 3.7. Giao diện khi đăng nhập thành công với quyền Admin ..................... 46
Hình 3.8. Giao diện cập nhật lớp học trong trường ............................................ 46
Hình 3.9. Giao diện cập nhật thiết bị trong phòng máy ...................................... 47
Hình 3.10. Giao diện cập nhật phòng thực hành trong trường ........................... 47
Hình 3.11. Giao diện đăng ký lịch thực hành phòng máy .................................. 48
Hình 3.12. Giao diện xem lịch thực hành phòng máy ........................................ 48


10

MỞ ĐẦU

1. Lý do chọn đề tài
Trong những năm gần đây, các ứng dụng web lớn liên tục được tạo ra,
đánh dấu những bước phát triển nhảy vọt về công nghệ trong thế giới lập trình.
Các nền tảng hỗ trợ lập trình cũng được xây dựng hàng loạt nhằm mục đích
chính là cải thiện tốc độ thực thi và nâng cao tính bảo mật cho các ứng dụng
web. Các nền tảng hỗ trợ lập trình ứng dụng (application framework) đều chứa
đựng các kinh nghiệm của các nhà kiến trúc phần mềm sau nhiều năm chiêm
nghiệm trong thế giới lập trình.
Framework hỗ trợ lập trình làm cho sự phát triển của các ứng dụng 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 framework giúp chúng ta thúc đẩy nhanh chóng
quá trình phát triển ứng dụng, giúp tiết kiệm được thời gian, tăng sự ổn định cho
ứng dụng, và có thể tái sử dụng lại được các thành phần. 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 nhờ
việc tương tác chính xác giữa các Database, mã và giao diện một cách riêng biệt.
Điều này cho phép chúng ta có thể dành nhiều thời gian để tạo ra các ứng dụng
web, hơn là phí thời gian viết các đoạn mã lặp lại trong một project.
Vì vậy với mong muốn làm giảm thời gian phát triển một ứng dụng web,
tôi đã chọn đề tài “Xây dựng framework hỗ trợ lập trình web”
2. Nội dung của đề tài, các vấn đề cần giải quyết
Nghiên cứu cơ sở lý luận về nền tảng hỗ trợ lập trình ứng dụng web (Web
application framework). Khái niệm, mục đích tạo ra Framework, và những đặc
điểm chung của các Framework phổ biến hiện nay. Từ đó đưa ra kết luận thực tế
về việc xây dựng một Framework. Tìm hiểu khái niệm và tính phổ biến của ứng
dụng web, so sánh các ưu điểm và nhược điểm giữa web tĩnh và web động để
đưa ra những ưu điểm vượt trội của web động. Rút ra khái niệm và đặc điểm của
Web application Framework, Ngoài ra luận văn đưa ra ứng dụng của mô hình
MVC, giới thiệu một số PHP Framework phổ biến hiện nay cũng sử dụng mô
hình MVC như CakeFramework, Zend Framework, CodeIgniter hay Symfony.
Xây dựng thử nghiệm một framework bằng ngôn ngữ PHP dựa trên mã

nguồn mở. Trước khi giới thiệu về Framework thử nghiệm xây dựng được tác
giả luận văn đưa ra Zend Framework, phân tích các chức năng và thành phần
của nó. Dựa trên kiến thức thu được khi phân tích Zend Framework, tác giả xây
dựng PHP Framework thử nghiệm, và đưa ra kiến trúc của Framework thử
nghiệm, với hệ thống thư mục và các thành phần trong Framework thử nghiệm.


11

Ngoài ra luận văn cũng giới thiệu các lớp thư viện, và hàm hỗ trợ tự xây dựng
được khi làm Framework thử nghiệm.
Xây dựng ứng dụng Web “Quản lý đăng ký sử dụng phòng thực hành máy
tính trường Đại học Hải Dương” dựa trên Framework thử nghiệm, chỉ ra phương
thức vận hành của ứng dụng. Trước khi xây dựng ứng dụng, tác giả đã tìm hiểu
về quy trình quản lý và sử dụng thực tế phòng thực hành máy tính trường Đại
học Hải Dương. Từ đó đi phân tích các nhu cầu và xây dựng các chức năng
chính trong ứng dụng Web “Quản lý đăng ký sử dụng phòng thực hành máy tính
trường Đại học Hải Dương”. Luận văn cũng trình bày bản thiết kế hệ thống ứng
dụng. Và tác giả viết ứng dụng với Framework thử nghiệm. Cuối cùng trong
luận văn tác giả cũng mô tả về cách thức hoạt động của ứng dụng Web “Quản lý
đăng ký sử dụng phòng thực hành máy tính trường Đại học Hải Dương”.
3. Bố cục luận văn
Luận văn được thiết kế bao gồm 3 chương:
Chƣơng 1. Tổng quan về nền tảng hỗ trợ lập trình Web (Web
Application Framework)
Chương này giới thiệu tổng quan về framework, ứng dụng web, so sánh
web tĩnh và web động. Lợi ích khi sử dụng web application framework để xây
dựng ứng dụng web, web động, các dịch vụ web….
Ngoài ra chương 1 còn giới thiệu về PHP Framework với ý tưởng làm
việc chung của PHP Framework hiện nay qua mô hình kiến trúc MVC, và giới

thiệu sơ qua về lịch sử và đặc điểm của một số PHP Framework hay được sử
dụng nhất hiện nay.
Chƣơng 2. Xây dựng Framework thử nghiệm bằng ngôn ngữ PHP
Chương này giới thiệu tổng quan, các thành phần và chức năng của
Framework, từ đó tự xây dựng một Framework khác, đó là Framework thử
nghiệm. Chương 2 cũng cung cấp kiến trúc của Framework thử nghiệm, cách
thức vận hành và các thư viện hỗ trợ của Framework thử nghiệm.
Chƣơng 3. Xây dựng ứng dụng “Quản lý đăng ký sử dụng phòng thực
hành máy tính trƣờng Đại học Hải Dƣơng” sử dụng Framework thử nghiệm
Giới thiệu về quy trình quản lý và sử dụng phòng thực hành trường Đại
học Hải Dương. Từ đó phân tích được nhu cầu của người dùng, và đưa ra các
chức năng cho ứng dụng Web. Sau đó, chương 3 đưa ra bản thiết kế hệ thống
với các biểu đồ Use Case và chi tiết lớp. Cuối cùng mô tả về ứng dụng xây dựng
được thông qua hình ảnh một số giao diện chính.


12

CHƢƠNG 1. TỔNG QUAN VỀ NỀN TẢNG HỖ TRỢ LẬP TRÌNH ỨNG
DỤNG WEB (WEB APPLICATION FRAMEWORK)
1.1. Framework
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.
Framework được tạo ra nhằm giải quyết 2 vấn đề: Tổ chức thư viện và
khái quát cấu trúc cho ứng dụng. Framework cung cấp một cấu trúc phát triển
chuẩn để các nhà phát triển ứng dụng 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 packages hoặc namespace riêng. 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.
Đặc điểm chung của các Framework:
- Framework đóng gói các thư viện: Trong Framework có chứa các thư

viện hỗ trợ cho các nhà phát triển ứng dụng sử dụng.
- Framework hoạt động chủ động: Bản thân Framework có thể tự đưa ra
các quyết định gọi (hoặc bị gọi bởi) một cái gì đó, có thể là thư viện hoặc ứng
dụng.
- Framework đưa ra một phương pháp luận để viết ứng dụng và thư viện
trên nó.
Như vậy có thể nói, người lập trình ra Framework thực tế là viết ra một
phần mềm ứng dụng khái quát, tạo ra một thư viện và một bộ gọi - tải - nạp ứng
dụng. Người lập trình ứng dụng sẽ dựa vào ứng dụng khái quát để phát triển ứng
dụng trên Framework.
1.2. Web Application Framework
Ứng dụng Web là một chương trình ứng dụng có thể tiếp cận web thông
qua mạng như Internet hoặc mạng nội bộ. Để thiết kế website có 2 phương thức
chính để có thể thiết kế lên ứng dụng web đó là thiết kế web tĩnh và thiết kế web
động:
- Web tĩnh: là các website chỉ bao gồm các trang web tĩnh, nội dung ít
thay đổi và người sử dụng không tương tác được với nó, muốn thay đổi nội dung
của nó người ta phải thay đổi trong mã nguồn. Thiết kế web tĩnh người ta
thường sử dụng ngôn ngữ HTML, và thường không có cơ sở dữ liệu đi kèm.
Như vậy với web tĩnh ta có thể thấy nó có ưu điểm là thiết kế đẹp (vì có thể trình
bày ý tưởng về đồ họa và mỹ thuật trên từng diện tích trang web), tốc độ truy
cập nhanh (vì không mất thời gian truy cập cơ sở dữ liệu), chi phí đầu tư thấp (vì
không mất phí cho việc lập trình web, thiết kế cơ sở dữ liệu và thuê chỗ cho cơ
sở dữ liệu,…). Nhưng sử dụng web tĩnh gặp khó khăn ở chỗ: khó thay đổi và


13

cập nhật thông tin (muốn thay đổi phải biết ngôn ngữ html, sử dụng được
chương trình thiết kế đồ họa và thiết kế web), thông tin không có tính linh hoạt

và không thân thiện với người dùng (người dùng muốn tăng lượng thông tin thì
website không đáp ứng được), và đặc biệt khó tích hợp, nâng cấp, mở rộng
(muốn nâng cấp một website phải làm mới gần như toàn bộ website)
- Web động: là website có cơ sở dữ liệu đi kèm và được hỗ trợ bởi các
phần mềm phát triển web. Với web động, thông tin hiển thị được gọi ra từ một
cơ sở dữ liệu khi người dùng truy vấn tới một trang web. Web động thường
được phát triển bằng các ngôn ngữ lập trình tiên tiến như PHP, ASP, ASP.NET,
Java, CGI, Perl, và sử dụng các cơ sở dữ liệu quan hệ mạnh như Access,
MySQL, MS SQL, Oracle, DB2.Thông tin trên web động luôn được cập nhật
trong một cơ sở dữ liệu thông qua các công cụ cập nhật của phần mềm quản trị
web và người dùng Internet có thể xem những chỉnh sửa đó ngay lập tức. Tuy
nhiên với web động thì chi phí đầu tư sẽ rất lớn.
Trước đây, mỗi ứng dụng chạy với mô hình chủ - khách có chương trình
riêng chạy trên máy khách phục vụ người sử dụng (ví dụ như giao diện người
dùng) và phải được cài đặt trên từng máy cá nhân. Khi ứng dụng tại máy chủ
được nâng cấp thì tất cả các máy khách cũng phải được nâng cấp theo. Ngược
lại, ứng dụng web linh hoạt tạo ra một loạt các tài liệu Web ở định dạng chuẩn
được hỗ trợ bởi những trình duyệt phổ biến như HTML/XHTML. Ngôn ngữ
kịch bản phía người dùng ở dạng ngôn ngữ chuẩn như JavaScript thường được
thêm vào để có thêm những yếu tố động trong giao diện người dùng. Nói chung,
mỗi trang Web đơn lẻ được gửi tới người dùng như một tài liệu ổn định, nhưng
thứ tự các trang có thể cung cấp cảm giác trực quan, khi những gì người dùng
nhập vào sẽ được trả về thông qua thành phần mẫu Web được nhúng vào trong
đánh dấu trang. Trong quá trình giao dịch đó, trình duyệt Web sẽ thông dịch và
hiển thị trang, và hoạt động như một người dùng chung cho bất kỳ ứng dụng
Web nào.
Ứng dụng Web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một
chương trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân
phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ
biến của nó. Ứng dụng Web được dùng để hiện thực Webmail, Bán hàng trực

tuyến, Đấu giá trực tuyến, Diễn đàn thảo luận, Weblog, Hệ quản trị nội
dung, Phần mềm quản lý nguồn nhân lực và nhiều chức năng khác.
Web Application Framework là một Framework được thiết kế để hỗ trợ
việc phát triển các website động, các ứng dụng web và các dịch vụ web.


14

1.3. PHP Framework
PHP framework là web framework được viết bằng PHP - một ngôn ngữ
lập trình nguồn mở phổ biến nhất hiện nay.
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 đỡ
chúng ta 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ã
cho lập trình viên. Ngoài ra PHP 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 Database, mã (PHP) và giao diện (HTML) một cách riêng biệt. Điều này cho
phép chúng ta dành nhiều thời gian để tạo ra các ứng dụng web, hơn là phí thời
gian để viết các đoạn mã lặp lại trong một project.
PHP là một ngôn ngữ script khá mạnh mẽ dùng để xây dựng website, và
hiện nay nó cũng đang có rất nhiều framework tốt như: zend framework,
symfony, yii framework, codeigniter… được rất nhiều nhà phát triển ưa thích và
sử dụng. Các PHP Framework đều được xây dựng theo chuẩn mô hình Model View - Controller (MVC) và cung cấp rất nhiều lớp hỗ trợ xử lý về bảo mật,
phân quyền, captcha, view helper, module manager, database, service… 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.
Ý 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 nghĩa với việc
ta có thể chỉnh sửa chúng một cách riêng lẻ.
1.4. Mô hình Model - View - Controller (MVC)
1.4.1. Lịch sử mô hình MVC
Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình
hướng đối tượng (Object Oriented Programming) vào những năm 70 của thế kỷ
20, cho phép lập trình viên làm việc với những thành phần đồ họa như những
đối tượng đồ họa có thuộc tính và phương thức riêng của nó. Không dừng lại ở
đó, những nhà nghiên cứu ở phòng thí nghiệm Xerox PARC còn đi xa hơn khi
cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller).
Kiến trúc MVC đã được ứng dụng để xây dựng rất nhiều thư viện đồ họa khác
nhau. Tiêu biểu là bộ thư viện đồ họa của ngôn ngữ lập trình hướng đối tượng
SmallTalk (cũng do Xerox PARC nghiên cứu và phát triển vào thập niên 70 của


15

thế kỷ 20). Ngày nay, trong nhiều các nền tảng lập trình chúng ta thấy sự có mặt
của mô hình MVC, có thể kể đến (3):
- Swing Components của Java
- Document View Architecture trong Microsoft Visual C++ (VC++)
- QT4 (KDE)
- Apple’s Cocoa (Core Data)
1.4.2. Khái niệm mô hình MVC
Mô hình MVC (Model-View-Controller) là một kiến trúc phần mềm, đây
là mô hình tổ chức code một cách hợp lý và có hệ thống. Mô hình MVC tách
biệt phần xử lý dữ liệu ra khỏi phần giao diện, cho phép phát triển, kiểm tra và
làm việc theo dự án.


Hình 1.1. Mô hình MVC
Trong đó [3, 4]:
- Model: Cách thức cung cấp dữ liệu và xử lý dữ liệu (đóng vai trò Phát
triển). Các lớp thuộc thành phần Model thường thực hiện các tác vụ như truy
vấn, thêm, xoá, cập nhật dữ liệu. Khi dữ liệu trong Model thay đổi, thành phần
View sẽ được cập nhật lại. Nói đơn giản hơn, Model là lớp thao tác với cơ sở dữ
liệu là chính.
- View: là thành phần thể hiện dữ liệu trong Model thành các giao diện
tương tác với người sử dụng (đóng vai trò thiết kế). Một mô hình có thể có nhiều
View phụ thuộc vào các mục đích khác nhau. Nói đơn giản hơn, View là lớp
hiển thị dữ liệu ra bên ngoài cho người dùng xem.
- Controller: đóng vai trò trung gian giữa Model và View. Thông tin
người dùng từ View được gửi cho Controller xử lý, sau đó Controller tương tác
với Model để lấy dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về


16

cho View. Nói đơn giản hơn, Controller là lớp điều khiển, có chức năng điều
khiển các hành vi, yêu cầu.
Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành
phần View (mã HTML/XHTML) được sinh ra từ các ngôn ngữ thiết kế website.
Thành phần Controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này,
sau đó chuyển sang Model xử lý. Model sẽ trả dữ liệu về phía Controller, sau đó
Controller sinh mã HTML/XHTML để thể hiện trên View.
Cách thức làm việc của MVC:
- Khi user tương tác với View bằng cách click vào button, user gửi yêu
cầu đi.
- Controller nhận và điều hướng chúng đến phương thức xử lý ở Model.
- Cotroller nhận thông tin và thực thi yêu cầu

- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả và hiển thị lại cho
người dùng [3, 4].
1.4.3. Các thành phần trong Web Framework
1.4.3.1. Model
Gồm các lớp cung cấp dữ liệu, dịch vụ liên quan đến dữ liệu và các vấn đề
xử lý nghiệp vụ. Vì vậy model có thể [2, 4]:
- Đánh giá tính hợp lệ của dữ liệu (ví dụ kiểm tra dữ liệu vào có đúng với
nguyên tắc của hệ thống không);
- Chuyển đổi dữ liệu (ví dụ chuyển đổi định dạng file, chuyển đổi tỉ giá,
chuyển đổi ngôn ngữ…), đưa ra quyết định về nghiệp vụ;
- Thực hiện việc xử lý dữ liệu theo một quy trình nghiệp vụ.
Do có hai vai trò tương đối tách biệt cho nên Model thường được tách
thành các lớp có các vùng xử lý khác biệt:
- Vùng xử lý logic nghiệp vụ: thường là xử lý về nguyên tắc của nghiệp
vụ cũng như quy trình nghiệp vụ.
- Vùng xử lý dữ liệu: cung cấp/lưu trữ dữ liệu và việc chuyển đổi dữ liệu
thành các dạng khác nhau theo yêu cầu.
Trong các tình huống đơn giản, Model chỉ làm vài thao tác đơn giản như
lấy dữ liệu từ database. Trong các tình huống phức tạp, việc xử lý có thể là tổ
hợp của hàng trăm lớp diễn ra trên một hoặc vài máy chủ (server) hoặc thậm chí
dữ liệu hay quyết định được đưa ra từ Model lại là tổng hợp kết quả từ một vài
trung tâm dữ liệu nằm rải rác trên vài lục địa. Do vậy trong Model không chỉ có
các thao tác trên database mà nó còn với file system, memory, networking I/O ...
Model hoạt động như là một tầng dịch vụ có thể tái sử dụng các lớp
Controller.


17

1.4.3.2. View

Là các lớp định nghĩa cách thức trình bày dữ liệu (không cập nhật dữ
liệu). View bao gồm 2 phần chính [2, 4]:
- Template file: định nghĩa giao diện cho người dùng. Ví dụ như bố cục,
màu sắc, khung nhìn ...
- Phần Logic: xử lý cách áp dụng dữ liệu vào cấu trúc trình bày. Phần này
có thể kiểm tra dữ liệu để có thể hiển thị dữ liệu với cấu trúc template đang có...,
kiểm tra trạng thái và đặc tính của dữ liệu để lựa chọn một cấu trúc hiển thị phù
hợp.
Bản thân View cũng là một tổ hợp của nhiều lớp. Và nó cũng có thể có
View con để giảm tải trên một số lớp chính và để tái sử dụng mã.
Trong mô hình truyền thống, View có trách nhiệm chuyển đổi dữ liệu hay
trạng thái của Model thành cấu trúc trực quan. Do vậy dữ liệu của Model cần
được định nghĩa một cách hợp lý. Sự tách biệt của hai thành phần này sẽ giúp
cho người lập trình phân biệt rõ ràng giữa cách thức lưu trữ/lấy dữ liệu và cách
trình bày dữ liệu. Do vậy tính phức tạp của quy trình lấy dữ liệu, xử lý dữ liệu
(sự thay đổi của chúng theo thời gian) trước khi trả về sẽ không làm ảnh hưởng
đến việc trình bày dữ liệu. Rõ ràng sự khác biệt về công nghệ lấy dữ liệu và
công nghệ sinh trang không gây ảnh hưởng đến ứng dụng. Điều này khá quan
trọng trong việc tích hợp các ứng dụng. Ngoài ra, cách làm này thực sự đảm bảo
việc tách biệt vai trò của người thiết kế giao diện với vai trò của lập trình viên
thiên về dữ liệu. Như vậy khi làm việc theo nhóm, người quản trị dự án có thể tổ
chức nhóm phát triển thành các nhóm kĩ năng và phát triển ứng dụng song song
với nhau.
Các công nghệ thường được sử dụng ở View là HTML, CSS và
JavaScript.

Hình 1.2. Biểu đồ tuần tự một chuỗi MVC đơn giản


18


1.4.3.3. Controller
Controller là các lớp điều khiển luồng ứng dụng, tiếp nhận yêu cầu người
dùng thông qua HTTP header, sau đó chuyển tiếp nó đến các lớp phụ trách trực
tiếp xử lý yêu cầu. Như vậy Controller đóng vai trò là trung tâm điều khiển,
nhưng Model không biết Controller nào sẽ lựa chọn nó, nó bị động. Tương tự,
View không biết Controller nào sẽ gọi nó ra và cung cấp cho nó dữ liệu gì, nó
cũng bị động. Bằng cách đó, View và Model không hề biết nhau.Tùy theo cách
thiết kế lớp mà chúng ta thường thấy Controller gồm [2, 4]:
- Front Controller: Là một controller xử lý tất cả các yêu cầu người dùng
cho website. Front Controller có nhiệm vụ hợp nhất tất cả các xử lý yêu cầu vào
một kênh yêu cầu thông qua một đối tượng.
- Dispatcher: Lớp điều phối hướng các điều khiển đi mức cao hơn
- Request: xử lý một phần dữ liệu đầu vào ở mức GET, POST và PUT
- Session: xử lý một phần dữ liệu đầu vào ở mức SESSION
Tùy theo dữ liệu đầu vào, Controller sẽ thực hiện các phép lọc (với dịch
vụ lấy từ Model), các tính toán lựa chọn (Action Mapping) dựa trên kiến trúc và
cấu hình nhằm xác định thành phần lớp chính sẽ thực hiện yêu cầu của người
dùng. Đây chính là chức năng điều khiến luồng ứng dụng của Controller. Vì là
nơi đón nhận dữ liệu đầu vào cho nên thường thì các thành phần xử lý form (ví
dụ ActionForm trong Struts) sẽ thuộc về Controller. Controller cũng sẽ có chức
năng xác nhận đơn giản nhằm thực hiện chức năng điều khiển luồng của mình.
Controller nhận dữ liệu nhập vào qua View, sau đó gọi Model tương ứng rồi lấy
kết quả trả về từ Model này. Tiếp theo, một View thích hợp sẽ được lựa chọn.
Controller sẽ chuyển tiếp dữ liệu vào view để nó xử lý.
Một số hoạt động thường thấy của Controller:
- Tạo form, gửi tin nhắn đến form để yêu cầu kiểm tra dữ liệu
- Tạo các dịch vụ liên quan đến nghiệp vụ ứng dụng, yêu cầu các lớp dịch
vụ tương tác với nguồn dữ liệu để trả về hay thay đổi trạng thái dữ liệu: thực
hiện các thao tác chuyển đổi dữ liệu, kiểm tra quyền truy cập trên một hoạt động

cụ thể, tương tác với database, tương tác với các web services.
- Tạo đối tượng view, gán các nguồn dữ liệu lấy được từ đối tượng dịch
vụ vào cho view.
Khi Controller gọi Model thông qua các giao diện lập trình (API) của
Model, nó cần biết một số ứng xử chung của Model. Ví dụ: cách Model đó gửi
tín hiệu về quá trình nó xử lý yêu cầu, kiểu trả về cần mang tính nhất quán.
Mô hình Model - View - Controller được áp dụng chủ yếu trong các Web
framework hiện nay. Các PHP framework phổ biến nhất có thể kể đến:


19

- CakePHP: là một lựa chọn tốt cho những lập trình viên có kiến thức
nâng cao về PHP. Mục đích của nó là cung cấp một framework cho người sử
dụng php phát triển những ứng dụng web nhanh, mạnh mẽ, linh hoạt, và điều
quan trọng là CakePHP là một OpenSource (miễn phí). Để sử dụng nó, yêu cầu
người làm phải biết những kiến thức như: Cơ bản về PHP và HTML, kiến trúc
Model - View - Controller, Lập trình hướng đối tượng. Với các hệ thống hỗ trợ,
tính đơn giản và môi trường mở cao đã giúp cho CakePHP trở thành một trong
những framework phổ biến nhất hiện nay. Điểm nổi bật của CakePHP là được
cộng đồng mạng tích cực chia sẻ, cấu trúc khung rất dễ hiểu và đặc biệt là Cake
Bakerry là nơi các nhà phát triển bên thứ ba có thể thêm mã riêng của họ và chia
sẻ với cộng đồng. CakePHP là khung framework không có sự ủng hộ của công
ty, nhưng đó cũng có thể coi là một thuận lợi của nó vì như vậy nó được cộng
đồng lựa chọn và phát triển nhiều hơn [9,10].
- CodeIgniter: một MVC framework viết bằng PHP4 (đã tương thích hoàn
toàn với PHP 5.3.0 trong phiên bản 1.7.2). Được biết đến như một framework dễ
hiểu, dễ sử dụng và rất nhẹ nên nó có tốc độ rất nhanh. Đặc biệt là bạn có thể
thêm phần mềm của bên thứ ba nào khác mà chạy vẫn không cảm thấy chậm đi.
CodeIgniter được Rasmus Lerdorf - cha đẻ của ngôn ngữ PHP - đánh giá rất cao

vì tính tinh giản về cấu trúc, đạt hiệu năng cao khi vận hành. Nó cung cấp các
giải pháp đơn giản, và có một thư viện video hướng dẫn phong phú, diễn đàn hỗ
trợ, và cung cấp sẵn một hướng dẫn sử dụng cho người mới bắt đầu. PHP
framework này rất phù hợp cho một người mới làm quen với framework [4].
- Zend framework: là sản phẩm của Zend – công ty “bảo trợ” cho PHP.
Với các tính năng mạnh mẽ, Zend framework thường được sử dụng cho các
công ty lớn, và bạn cần phải có lượng kiến thức khá sâu rộng về PHP để có thể
sử dụng được Zend framework [2, 6].
- Symfony: được ra đời nhằm mục đích giúp đỡ nâng cao hơn cho những
lập trình viên muốn tạo ra các ứng dụng website doanh nghiệp. Đây là một PHP
framework mã nguồn mở với đầy đủ các tính năng cần thiết, nhưng nó có vẻ
chạy chậm hơn các framework khác [10].
Như vậy: PHP framework là một giải pháp có thể giúp cho các lập trình
viên phát triển các kỹ năng như: giảm thiểu việc viết lại mã, tăng tốc quá trình
phát triển ứng dụng, và chuẩn hóa mã lệnh khi xây dựng các ứng dụng web.
Không chỉ giúp các bạn cải thiện tốc độ phát triển ứng dụng, nó còn giúp bạn
giảm thiểu các lỗ hổng bảo mật một cách triệt để. PHP framework phù hợp cho
cả những người mới làm quen hay những bạn đã có kiến thức vững về PHP.


20

CHƢƠNG 2. XÂY DỰNG THỬ NGHIỆM FRAMEWORK
BẰNG NGÔN NGỮ PHP
2.1. Tổng quan về một PHP Framework
Hầu hết các PHP framework đều có sẵn rất nhiều thành phần mở rộng
(extensive), và cũng có rất nhiều framework khác nhau để lựa chọn. Ví dụ Zend
Framework là một PHP framework được lập trình bằng ngôn ngữ PHP và dựa
trên mô hình Model - View - Controller, giúp tách các thành phần xử lý ra một
cách rõ ràng, giúp code dễ dàng được quản lý, chỉnh sửa và nâng cấp. Các đặc

điểm của Zend Framework [1, 6]:
- Tạo ứng dụng web theo mô hình chuẩn Model - View - Controller.
- URL tiêu chuẩn, ngắn gọn.
- Hỗ trợ phân quyền tới từng Action.
- Có các thành phần thư viện hỗ trợ API của các nhà cung cấp như Yahoo,
Google, Flick.
- Có rất nhiều thư viện được hỗ trợ sẵn.
- Được xây dựng trên nền tảng lập trình hướng đối tượng nên có thể thừa
kế, nâng cấp ứng dụng một cách dễ dàng.
- Dễ dàng phát triển thêm các ứng dụng nhúng, sử dụng các plugins.
- Ta đi tìm hiểu cấu trúc và chức năng của các thành phần trong Zend
Framework, trước khi phân tích PHP Framework thử nghiệm, để thấy được sự
khác nhau giữa chúng.
Mô hình Model - View - Controller trong Zend Framework (Xem hình 2.1)

Hình 2.1. Mô hình Model – View – Controller trong Zend Framework
Model: Thành phần model được xây dựng thành các lớp kế thừa từ lớp
Zend_Db_Table hoặc Zend_Db_table_Abstract được đặt trong thư mục
application/models của ứng dụng. Mỗi lớp sẽ đảm nhận việc kết nối và thao tác
đến table trong cơ sở dữ liệu.


21

View: Thành phần của view được đặt trong thư mục application/views.
Trong thư mục views có 3 thành phần:
- Scripts: chứa các thư mục gồm các file ánh xạ đến các controller/action
để hiển thị trang giao diện tương ứng.
- Helpers: trong thư mục này chứa các lớp mà chúng ta tạo ra và các lớp
này sẽ được nạp tự động cho đối tượng Zend_View thông qua

Zend_View_Helper để giúp chúng ta dễ dàng gọi đến hàm được xây dựng trong
lớp này mà không cần phải khai báo trước vì nó được xem là một thành phần
trong thư viện của Zend.
- Filers: tương tự như helpers, thành phần filters chứa các lớp giúp cho
chúng ta có thể thay đổi hoặc xóa những dữ liệu không mong muốn trong quá
trình nhập liệu thông qua bộ lọc này.
Controller: có nhiệm vụ điều hành trang web của bạn. Một trang web có
thể có nhiều module, một module có thể có nhiều controller, một controller gồm
có nhiều action. Zend Framework sử dụng đối tượng Front Controller để quản lý
các Request được gửi tới Web Server. Và dựa trên Request đó nó sẽ gọi các lớp
xử lý Model và trả về kết quả trình bày với các lớp View.index.php là một file
rất quan trọng trong website, nó có nhiệm vụ đón đầu tất cả các request vào, sau
đó khởi tạo controller và dispatch request đến controller tương ứng.
bootstrap.php có nhiệm vụ khởi tạo các đối tượng toàn cục sử dụng cho website,
bẫy lỗi của ứng dụng và đưa về cho errorController xử lý.
Cấu trúc thư mục của Zend Framework (Xem hình 2.2)

Hình 2.2. Cấu trúc thư mục của Zend Framework


22

Ý nghĩa và chức năng của các thành phần trong Zend Framework (6):
- Thư mục Config: là nơi chứa những cấu hình của toàn bộ dự án đang
được xây dựng; nó gồm tập tin cấu hình application.config.php nơi khai báo các
module sẽ được sử dụng, các thiết lập cấu hình cho toàn bộ dự án… và một thư
mục autoload là những tập tin cấu hình tự động được load vào dự án có đuôi mở
rộng (*.local.php hoặc *.global.php). Những tập tin cấu hình có đuôi mở rộng là
(*.local.php) sẽ bị bỏ qua khi các bạn commit dự án lên Git, nên những thông tin
nhạy cảm như tài khoản kết nối database cũng thường được đặt vào trong các tập

tin này.
- Thư mục Data: thư mục chứa những dữ liệu được cached từ database,
hoặc cache những toàn bộ cấu hình của dự án… Chúng ta lưu trữ các tập tin dữ
liệu trong thư mục này để dễ dàng quản lý và xử lý.
- Thư mục Module: nơi chứa những module mở rộng, bạn có thể xây
dựng những module mới dành riêng cho dự án của bạn giúp bạn xây dựng dự án
một cách nhanh chóng và hiệu quả nhất.
- Thư mục public: là nơi những tập tin như css, js, font, hình ảnh,…. để
hỗ trợ cho việc hiển thị website trên trình duyệt, nó chứa những tài nguyên công
khai và dễ dàng truy nhập.
- Thư mục vendor: nơi chứa bộ thư viện Zend Framework 2 và những
module mở rộng khác. Bạn có thể đặt module mở rộng ở cả trong 2 thư
mực module hoặc vendor
PHP Framework thử nghiệm được chúng tôi xây dựng và phát triển, có
nhiều ưu điểm khác so với các PHP framework hiện nay:
- Tạo ứng dụng web theo mô hình chuẩn Model – View – Controller,
nhưng với nguyên tắc đặt tên của các thành phần View, Controller là View_ini,
Controller_ini. Với giá trị biến ini được lấy từ yêu cầu người dùng (địa chỉ
URL), như vậy với việc triệu gọi lớp join_path nó sẽ thực hiện việc ghép các
thành phần Model – View – Control có liên quan lại với nhau. Thành phần
Model được thừa kế từ lớp mysql (system/Database) chủ yếu tương tác với cơ sở
dữ liệu, thành phần Controller sử dụng lớp Model tương tác với cơ sở dữ liệu để
thực hiện các thao tác xử lý yêu cầu người dùng, thành phần View tạo giao diện
tương tác với người dùng sử dụng lớp Controller tương ứng để nhận kết quả của
trang ứng dụng.
- Có thể sử dụng ngay hàm trong thư viện (thư mục system\Lib) với các
lớp Registry (system\CoreAc) và autoload (system\Lib) mà không cần khai báo.
Vì với lớp Registry Framework thử nghiệm sẽ tiến hành đăng ký với hệ thống,



23

và với lớp autoload nó sẽ tiến hành dò tìm trong thư viện và tự khai báo các lớp
để có thể sử dụng.
- Trong thư viện Framework thử nghiệm xây dựng sẵn lớp
ExportDataExcel, sử dụng để xuất báo cáo ra các file có định dạng khác (Ví dụ
.xls, .tsv, .csv). Các Framework khác nếu muốn có chức năng này thì phải cài
thêm plugin, trừ những Framework chuyên về phần mềm tài chính và bán hàng
trực tuyến.
- Ngoài ra trong thư viện Framework thử nghiệm có xây dựng lớp
password_en_de quy định việc mã hóa và giải mã riêng, mặt khác cùng với hàm
session được dùng để lưu các phiên làm việc, các máy khác nhau sẽ có phiên
làm việc khác nhau, Framework thử nghiệm cũng quy định việc bảo mật khác
với các loại Framework khác. Có thể dễ dàng phát triển thêm các lớp trong thư
viện theo yêu cầu của người dùng, nhưng phải tuân theo nguyên tắc tên lớp phải
trùng với tên file chứa nó, và phải được đặt trong thư mục system/Lib.
Ngoài những thành phần khác so với PHP Framework phổ biến hiện nay,
PHP Framework thử nghiệm được chúng tôi xây dựng cũng kế thừa những PHP
Framework khác. Ví dụ như một số hàm định nghĩa kiểu dữ liệu trong thư mục
helpers đã được PHP hỗ trợ rất tốt (như array, number, string, text,…).
Framework thử nghiệm là một PHP framework được viết ra nhằm mục
đích tận dụng mọi ưu điểm của mô hình MVC trong việc xây dựng các ứng dụng
web động bằng ngôn ngữ PHP. Framework thử nghiệmgiúp các lập trình viên
tạo nên các ứng dụng web có kiến trúc sáng sủa, dễ bảo trì và dễ mở rộng. Bên
cạnh đó, Framework thử nghiệm cho phép các nhà phát triển xây dựng một ứng
dụng web nhanh hơn rất nhiều so với việc viết mã thuần túy bằng cách cung cấp
một bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô
hình tương tác đơn giản và dễ hiểu cho việc kết nối tới những bộ thư viện đó.
Các đặc điểm nổi bật của Framework thử nghiệm:
- Tính dễ sử dụng (với cả các lập trình viên chưa có nhiều kinh nghiệm).

- Kiến trúc MVC hiện đại: mô hình dữ liệu (Model), điều khiển ứng
dụng (Controller), chức năng hiển thị (View).
- Khả năng tổ chức ứng dụng thành các lớp Controller đa tầng, giúp ứng
dụng có tính module hóa.
- Thư viện hỗ trợ caching.
- Mềm dẻo trong việc định tuyến URL (URL Routing).
- Tích hợp một số lớp và thư viện hàm hỗ trợ thuận tiện cho người sử
dụng: gửi Email, hỗ trợ đính kèm, HTML/Text email, đa giao thức (sendmail,


24

SMTP, and Mail) – Email Class; đăng tải một file lên server – Upload Class;
tương tác với máy chủ thông qua giao thức FTP-FTP Class; phân trang tự động
– Pagination Class; tạo ảnh Captcha - một loại kiểm thử dạng hỏi đáp được dùng
trong máy tính để xác định xem người dùng có phải là con người hay không Captcha Class; xuất dữ liệu ra định dạng khác (Excel, tsv hay csv) – ExportData
Class; lớp quy định việc bảo mật - Password_en_de Class (lớp này bao gồm 2
hàm xử lý việc mã hóa encode($str) và hàm xử lý việc giải mã decode($str));
đặc biệt hệ thống sẽ tự động add theo cấu trúc tên lớp và file trùng nhau và nằm
trong thư mục Lib nếu người dùng sử dụng mà không khai báo; một lượng lớn
các hàm hỗ trợ (trong thư mục System/helpers).
Yêu cầu khi sử dụng Framework thử nghiệm: Để hệ thống vận hành được,
yêu cầu tối thiểu sau cần được đáp ứng:
- Web server: Apache, Nginx, Lighttpd
- PHP 5.2.6 trở lên
- Database: MySQL
Khuyến cáo:
- Web server: Apache 2.2.11 kết hợp với PHP như là một module
- PHP 5.2.6 trở lên có bật Apache
2.2. Kiến trúc của Framework thử nghiệm

2.2.1. Tổng quát về hệ thống thư mục trong Framework thử nghiệm
Cấu trúc về hệ thống thư mục và tệp tin trong Framework thử nghiệm
(Xem hình 2.3). Trong đó:
Thƣ mục

Vai trò

Application

Nơi lưu trữ ứng dụng của bạn. Chia làm 3 thư mục con:
- Controller: chứa các lớp Controller của ứng dụng
- Model: chứa các lớp Model của ứng dụng
- View: chứa các lớp View của ứng dụng

Helpers

Nơi lưu trữ các hàm hỗ trợ lập trình tối ưu

Lib

Chứa các lớp thư viện hỗ trợ xử lý các vấn đề nghiệp vụ

Core_Ac

Chứa các lớp và hàm cốt lõi của Framework thử nghiệm

Chứa các lớp xử lý truy xuất tới các hệ quản trị cơ sử dữ
liệu MySQL
Bảng 1.1. Vai trò hệ thống thư mục trong Framework thử nghiệm


Database


25

Hình 2.3. Cấu trúc hệ thống thư mục Framework thử nghiệm
Có thể thấy Framework thử nghiệm được xây dựng hỗ trợ cho các lập
trình viên viết các ứng dụng web quản lý. Ví dụ có thể thấy Framework thử
nghiệm hỗ trợ chức năng xuất excel từ các bảng biểu báo cáo với lớp
ExportDataExcel trong thư viện Lib. Hay Framework thử nghiệm đưa ra những
quy định riêng về vấn đề bảo mật, nên việc bảo mật hệ thống của Framework
thử nghiệm cũng khác so với các Framework khác hiện nay. Framework thử
nghiệm sẽ sử dụng hàm Session để lưu lại các phiên làm việc, và với các máy
khác nhau nó cũng sẽ có các phiên làm việc khác nhau.
Ngoài ra trong Framework thử nghiệm xây dựng hàm autoload
(System/Lib/autoload.php), có thể tự động add các lớp và hàm theo cấu trúc tên
lớp và file trùng nhau nằm trong thư mục Lib. Như vậy khiến cho người dùng có
thể phát triển thêm các plugin theo nhu cầu của họ.


×