Xây dựng nền tảng hỗ trợ lập trình web dựa trên mô hình mvc - Pdf 10

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Xuân Thăng
XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB
DỰA TRÊN
MÔ HÌNH MVC
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Xuân Thăng
XÂY DỰNG NỀN TẢNG HỖ TRỢ LẬP TRÌNH WEB
DỰA TRÊN
MÔ HÌNH MVC
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS.Trương Ninh Thuận
HÀ NỘI - 2010
LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành tới thầy giáo, Tiến sĩ Trương Ninh Thuận,
người đã hướng dẫn và chỉ bảo tận tình cho tôi trong suốt quá trình học tập cũng như thực
hiện khóa luận tốt nghiệp này.
Tôi cũng xin cảm ơn các thầy, cô giáo đã chỉ dạy trong suốt thời gian gian tôi học tập tại
trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội. Cảm ơn các bạn Hoàng Đình
Quang, Nguyễn Văn Vũ, Phan Trọng Khanh, Đàm Thanh Tùng, những người bạn tốt đã
giúp đỡ tôi về mặt kỹ thuật trong quá trình nghiên cứu, xây dựng sản phẩm được trình bày
trong khóa luận tốt nghiệp này.
Ngoài ra, tôi muốn gửi lời cám ơn tới bố mẹ, người thân trong gia đình - những người đã
hết sức ủng hộ, giúp đỡ và động viên tôi trong suốt quá trình học tập đã qua.

2.2. Kiến trúc của Hiphop framework ............................................................................................ 19
2.2.1 Tổng quát về hệ thống thư mục trong Hiphop framework................................................19
2.2.2 Các thành phần cốt lõi ........................................................................................................ 20
CHƯƠNG 3. CÁC KHÁI NIỆM BAN ĐẦU KHI XÂY DỰNG ỨNG DỤNG WEB BẰNG
HIPHOP FRAMEWORK .................................................................................................................... 26
3.1. Hiphop URLs.......................................................................................................................26
3.2. Các lớp Controller................................................................................................................26
3.3. View - Template...................................................................................................................28
3.4. Các lớp Model......................................................................................................................31
CHƯƠNG 4: HỆ THỐNG CÁC LỚP THƯ VIỆN ........................................................................... 33
VÀ HÀM HỖ TRỢ - LIBRARY & HELPER ................................................................................... 33
4.1 Các lớp thư viện ....................................................................................................................... 33
4.1.1. Email library......................................................................................................................33
Với trường hợp gửi tới nhiều địa chỉ mail, chỉ cần làm như đoạn code sau:............................34
$list = array('', '', '');
$this->email->to($list);...............................................................................................................34
Hàm $this->email->attach() giúp gửi file đính kèm. Đặt đường dẫn file đính kèm trong tham
số đầu tiên của hàm:....................................................................................................................34
$this->email->attach('/path/to/photo1.jpg');
$this->email->attach('/path/to/photo2.jpg');
$this->email->attach('/path/to/photo3.jpg');
$this->email->send();..................................................................................................................34
4.1.2. Database library.................................................................................................................34
4.1.3. Phân trang với Pagination class........................................................................................36
4.2 Các Helper ................................................................................................................................ 39
4.2.1. Array Helper......................................................................................................................39
5
4.2.2. Text Helper........................................................................................................................39
4.2.3. URL helper........................................................................................................................41
CHƯƠNG 5: ÁP DỤNG HIPHOP FRAMEWORK XÂY DỰNG TRANG BLOG CÁ NHÂN ..... 42

ứng dụng web cỡ lớn (Facebook, Flickr, Twitter…). Bên cạnh đó PHP có một cộng đồng
sử dụng lớn, luôn biết hỗ trợ lần nhau. Nhưng chính tính linh hoạt, dễ học, dễ sử dụng của
PHP đôi khi làm các lập trình viên chủ quan, thường chỉ chú ý tới việc ứng dụng của mình
chạy được hay không mà không quan tâm tới tính sáng sủa trong việc tổ chức mã phục vụ
cho mục đích bảo trì dài lâu. Chưa kể tới việc vấn đề an toàn, bảo mật cho ứng dụng web
ngày càng bị xem nhẹ. Đây là lúc họ cần tới một PHP framework.
Sự có mặt của PHP framework làm cho việc phát triển ứng dụng web trở nên trôi chảy hơn
bằng việc 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 đỡ các lập trình viên thúc đẩy nhanh chóng quá trình phát triển
ứng dụng, tiết kiệm được phần lớn thời gian, tăng sự ổn định cho ứng dụng, và đặc biệt là
giảm thiểu số lần phải viết lại mã. Không chỉ thể, các framework còn đặc biệt hữu ích với
những lập trình viên ít kinh nghiệm, giúp họ có thể xây dựng các ứng dụng mang tính
chuẩn hóa hơn nhờ việc tương tác chính xác giữa việc xử lý cơ sở dữ liệu (database), mã
PHP và giao diện (HTML) một cách riêng biệt.
Các PHP framework hiện nay hầu hết đều cung cấp sẵn các module nền tảng cần thiết và
thư viện mã lệnh chuẩn (kết nối database, quản lý session, template engine…) để xây dựng
ứng dụng.
9
Ý tưởng chung đằng sau kiến trúc của một PHP Framework được kể đến là mô hình MVC.
Một mô hình không mới nhưng mang lại nhiều cảm hứng cho các chuyên gia lập trình
trong nhiều năm qua. Chúng ta sẽ cùng tìm hiểu các khái niệm và đặc điểm của mô hình M-
V-C.
1.3 MVC là gì?
MVC là chữ viết tắt của Model-View-Controller, một mẫu kiến trúc (architectural
pattern) được tạo ra nhằm giải quyết các vấn đề phát sinh cũng như các giải pháp tổ chức
mã trong quá trình phát triển phần mềm. Khi sử dụng đúng cách, mẫu MVC giúp cho người
phát triển phần mềm cô lập các nguyên tắc nghiệp vụ và giao diện người dùng một cách rõ
ràng hơn. Phần mềm phát triển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các
nguyên tắc xử lý nghiệp vụ và giao diện ít có liên quan với nhau.
1.3.1. Lịch sử MVC

Controller là thành phần trung gian giữa View và Model. Nó 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
11
 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.
b. M - Model
Model là 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ý logic
nghiệp vụ. Model có thể:
+ Đá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ụ. Ví dụ đưa ra các dữ liệu, lời khuyên tư vấn đầu tư
dựa trên dữ liệu đầu vào của người dùng và các dữ liệu đang có
+ Thực hiện việc xử lý dữ liệu theo một quy trình
Do có hai vai trò tương đối tách biệt cho nên một 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ý rule hay policy 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ừ

đả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.
13
Hình 1.0.2 Biểu đồ tuần tự một chuỗi MVC đơn giản
Tóm lại, MVC chia trách nhiệm công việc thành ba phần riêng rẽ:
 Phát triển (development): Các nhà phát triển làm việc với model. Đặc trưng của phần
này là tận dụng một cách triệt để kiến thức, kỹ năng của các lập trình viên liên quan tới
thuật toán xử lý dữ liệu, quản trị cơ sở dữ liệu...
 Thiết kế (design): Các nhà thiết kế làm việc trực tiếp với lớp View, chịu trách nhiệm tạo
ra "cảm quan" cho ứng dụng. Họ cần có kinh nghiệm làm việc với HTML, CSS,
JavaScript và Graphic Design.
 Hợp nhất (intergration): phần này tồn tại trong lớp Controller. Mục đích chính là gắn
kết developer và designer với nhau. Người hợp nhất không cần có nhiều kinh nghiệm
làm việc với dữ liệu như lập trình viên nhưng cần nắm rõ cách tổ chức của một ứng
dụng.
Mô hình MVC được áp dụng rất nhiều trong các Web framework hiện nay. Các PHP
framework phổ biến nhất:
+ 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.
+ 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. Nó dựa trên cùng một nguyên tắc thiết kế với Ruby on Rails (một framework
dành cho các nhà phát triển các ứng dụng web bằn ngôn ngữ Rail). Với các hệ thống
14
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.
+ CodeIgniter: một MVC framework viết bằng PHP4 (gần đây đã tương thích hoàn

Hình 2.0.3 Mô hình MVC được áp dụng trong Hiphop framework
16
Các đặc điểm nổi bật của Hiphop framework bao gồ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
 Tốc độ xử lý rất nhanh so với các PHP Framework đương đại nhờ kiến trúc khá thông
minh và mã được tinh giản, tối ưu cao
 Hệ thống lớp truy xuất Database mạnh mẽ, hỗ trợ tạo nhiều kết nối Database đến các
máy chủ database khác nhau trên cùng một request.
 Thư viện hỗ trợ caching
 Mềm dẻo trong việc định tuyến URL (URL Routing)
Ngoài ra, Hiphop framework tích hợp thêm vào một số lớp thư viện mà các framework
khác chưa mặc định tích hợp:
 Gửi Email, hỗ trợ đính kèm, HTML/Text email, đa giao thức (sendmail, SMTP, and
Mail) – Email Class
 Thư viện chỉnh sửa ảnh (cắt ảnh, thay đổi kích thước, xoay ảnh, v.v..) – Image 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
 Nén file - Zip Encoding 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
 Một lượng lớn các hàm hỗ trợ (helpers)
Bên cạnh đó là thư viện hàm hỗ trợ (helper) phong phú đi kèm.
Yêu cầu hệ thống khi sử dụng Hiphop framework:
Để hệ thống vận hành được, yêu cầu tối thiểu sau cần được đáp ứng:
17


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status