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

Xây dựng website chùa thạnh lâm trên nền zend framework

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 (3.88 MB, 91 trang )

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP. HCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

TRẦN MẠNH PHI - 0851120056
HỒ THANH BÌNH - 0851120005

XÂY DỰNG WEBSITE CHÙA THẠNH LÂM
TRÊN NỀN ZEND FRAMEWORK

KHÓA LUẬN TỐT NGHIỆP KỸ SƢ CNTT

GIÁO VIÊN HƢỚNG DẪN
ThS. Đặng Nhân Cách

NIÊN KHÓA 2008 - 2012


NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN

.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................


.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

i


NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................

ii


LỜI CÁM ƠN
Sau hơn ba tháng nỗ lực thực hiện khóa luận tốt nghiệp "Xây dựng website
cho chùa Thạnh Lâm trên nền Zend Framework" đã phần nào hoàn thành. Ngoài sự
cố gắng của bản thân, chúng tôi đã nhận đƣợc sự khích lệ rất nhiều từ phía nhà
trƣờng, thầy cô, gia đình và bạn bè.
Để có thể hoàn thành khóa luận này, trƣớc hết chúng tôi xin gửi lời cảm ơn
đến tập thể giảng viên trƣờng Đại học Giao Thông Vận Tải Thành Phố Hồ Chí

Minh đã tận tình giảng dạy, truyền đạt kiến thức quý báu giúp chúng tôi có đƣợc
nền tảng chuyên môn vững chắc và tiếp cận những phƣơng pháp nghiên cứu khoa
học trong suốt thời gian theo học tại trƣờng.
Đặc biệt chân thành bày tỏ lòng cảm ơn sâu sắc đến thầy Thạc Sĩ Đặng Nhân
Cách là ngƣời đã tận tình hƣớng dẫn và giúp đỡ chúng tôi thực hiện khóa luận này.
Bên cạnh đó, chúng tôi xin cảm ơn gia đình và bạn bè đã luôn bên cạnh ủng hộ,
giúp đỡ trong quá trình thực hiện khóa luận.
Sinh viên thực hiện
Trần Mạnh Phi
Hồ Thanh Bình

iii


Khoa Công Nghệ Thông Tin
Bộ môn mạng máy tính và truyền thông
ĐỀ CƢƠNG CHI TIẾT
Tên đề tài: Xây dựng website chùa Thạnh Lâm trên nền Zend Framework
Giáo viên hƣớng dẫn: ThS. Đặng Nhân Cách
Thời gian thực hiện: Từ 24/09/2012 đến 20/12/2012
Sinh viên thực hiện:
 Trần Mạnh Phi – 0851120056
 Hồ Thanh Bình – 0851120005
Loại đề tài:
 Tìm hiểu Zend Framework.
 Xây dựng website chùa Thạnh Lâm.
Nội Dung Đề Tài:
 Nghiên cứu công nghệ Zend Framework và các lĩnh vực khác liên quan đến
lập trình thiết kế web.
 Tìm hiểu cách thức hoạt động, quản lý của chùa Thạnh Lâm.

 Vận dụng vấn đề đã nghiên cứu để xây dựng website chùa Thạnh Lâm.
 Đƣa website chùa Thạnh Lâm vào hoạt động thực tiễn.
Kế Hoạch Thực Hiện:
Tuần

Thời gian

Nội dung

Phân công

1

24/09/2012

Tìm hiểu Zend

Phi, Bình

30/09/2012

Tham khảo website

Phi, Bình

Thiết kế layout

Phi

01/10/2012


Chỉnh sửa, cắt ghép layout

Phi

07/10/2012

Soạn thảo dàn ý lý thuyết

Bình

08/10/2012

Phân tích và thiết kế CSDL

Phi

17/10/2012

Soạn thảo lý thuyết

Bình

2

3

iv



4

5

15/10/2012

Code admin: loại tin, tin tức

Phi

21/10/2012

Code admin: thành viên, loại thành viên

Bình

22/10/2012

Soạn thảo bài báo cáo

Phi

28/10/2 12 Code admin: login admin
6

7

8

9


Bình

29/10/2012

Code admin: liên kết, giới thiệu, liên hệ

Phi

04/11/2012

Code admin: chức vụ, tập ảnh, hình

Bình

05/11/2012

Code admin: loại thơ, thơ, loại sách, sách

Phi

11/11/2012

Code admin: loại nhạc, nhạc, loại phim, phim

Bình

12/11/2012

Code admin: câu hỏi, trả lời, bình luận


Phi

18/11/2012

Code admin: phân quyền ACL

Bình

19/11/2012

Lập trình và thiết kế trang ngƣời dùng

Phi, Bình

Lập trình và thiết kế trang ngƣời dùng

Phi, Bình

03/12/2012

Lập trình và thiết kế trang ngƣời dùng

Phi, Bình

09/12/2012

Soạn thảo bài báo cáo

Phi


10/12/2012

Lập trình và thiết kế trang ngƣời dùng

Phi, Bình

16/12/2012

Soạn thảo bài báo cáo

Phi

Soạn thảo HTML

Bình

Soạn thảo powerpoint

Phi

25/11/2012
10

26/11/2012
02/12/2012

11

12


Xác nhận của GVHD

ThS. Đặng Nhân Cách

Ngày……tháng……năm……
SV Thực hiện

Trần Mạnh Phi

v

Hồ Thanh Bình


MỤC LỤC
NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪN ........................................................ i
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN .......................................................... ii
LỜI CÁM ƠN ........................................................................................................... iii
ĐỀ CƢƠNG CHI TIẾT ............................................................................................ iv
MỤC LỤC ................................................................................................................. vi
DANH SÁCH CÁC BẢNG .................................................................................... viii
DANH SÁCH CÁC HÌNH .........................................................................................x
DANH SÁCH CÁC CHỮ VIẾT TẮT, CHỮ TIẾNG ANH ................................... xii
MỞ ĐẦU ................................................................................................................. xiv
CHƢƠNG 1: TỔNG QUAN .......................................................................................1
1.1.

Giới thiệu ......................................................................................................1


1.2.

Mục tiêu ........................................................................................................1

1.3.

Phạm vi đề tài ...............................................................................................2

1.4.

Bố cục báo cáo .............................................................................................2

CHƢƠNG 2: CƠ SỞ LÝ THUYẾT ...........................................................................3
2.1.

Cơ sở dữ liệu MySQL ..................................................................................3

2.2.

Ngôn ngữ đánh dấu siêu văn bản - HTML...................................................3

2.3.

Cascading Style Sheet – CSS .......................................................................4

2.4.

Ngôn ngữ lập trình PHP ...............................................................................4

2.5.


Lập trình hƣớng đối tƣợng ...........................................................................5

2.6.

Zend Framework ..........................................................................................7

2.6.1. Giới thiệu ................................................................................................7
2.6.2. Mô hình MVC trong Zend Framework ..................................................8
2.6.3. Cơ bản về các thành phần trong Zend Framework .................................9
2.6.4. Các lớp cơ bản trong thƣ viện Zend Framework ..................................11
2.6.5. Ƣu điểm và khuyết điểm .......................................................................34

vi


CHƢƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ .............................................................36
3.1.

Khảo sát ......................................................................................................36

3.2.

Phân tích .....................................................................................................37

3.3.

Lập trình và thiết kế....................................................................................38

3.3.1. Công cụ và ngôn ngữ sử dụng ..............................................................38

3.3.2. Thiết kế cơ sở dữ liệu ...........................................................................39
3.3.3. Sơ đồ trang web ....................................................................................49
CHƢƠNG 4: TRIỂN KHAI VÀ ĐÁNH GIÁ ..........................................................52
4.1.

Các chức năng của trang web .....................................................................52

4.2.

Các ứng dụng trong trang web ...................................................................68

4.2.1. Ứng dụng công nghệ Zend Framework vào trang web ........................68
4.2.2. Các ứng dụng khác ...............................................................................69
CHƢƠNG 5: KẾT LUẬN ........................................................................................74
5.1.

Tóm tắt .......................................................................................................74

5.2.

Hƣớng phát triển .........................................................................................74

TÀI LIỆU THAM KHẢO .........................................................................................76

vii


DANH SÁCH CÁC BẢNG
Bảng 2. 1: Bảng cách thức truyền biến trong Zend Framework ...............................12
Bảng 2. 2: Bảng các thuộc tính trong Zend_Paginator .............................................18

Bảng 2. 3: Bảng các phƣơng thức trong Zend_Paginator .........................................18
Bảng 2. 4: Bảng các hàm hỗ trợ cache trong Zend_Paginator ..................................19
Bảng 2. 5: Bảng chức năng của các validate .............................................................21
Bảng 2. 6: Bảng chức năng của các filter..................................................................22
Bảng 2. 7: Bảng các khái niệm trong Zend_Auth .....................................................23
Bảng 3. 1: Bảng loại thành viên. ...............................................................................39
Bảng 3. 2: Bảng thành viên. ......................................................................................39
Bảng 3. 3: Bảng chức vụ. ..........................................................................................40
Bảng 3. 4: Bảng liên kết chức vụ - thành viên. .........................................................40
Bảng 3. 5: Bảng câu hỏi. ...........................................................................................40
Bảng 3. 6: Bảng trả lời. .............................................................................................41
Bảng 3. 7: Bảng loại tin.............................................................................................41
Bảng 3. 8: Bảng tin tức. ............................................................................................41
Bảng 3. 9: Bảng bình luận. ........................................................................................42
Bảng 3. 10: Bảng loại nhạc. ......................................................................................42
Bảng 3. 11: Bảng tập nhạc. .......................................................................................42
Bảng 3. 12: Bảng bài hát. ..........................................................................................43
Bảng 3. 13: Bảng loại phim.......................................................................................43
Bảng 3. 14: Bảng phim..............................................................................................43
Bảng 3. 15: Bảng loại sách. .......................................................................................44
Bảng 3. 16: Bảng sách. ..............................................................................................44
Bảng 3. 17: Bảng loại thơ..........................................................................................44
Bảng 3. 18: Bảng thơ.................................................................................................45
Bảng 3. 19: Bảng tập ảnh. .........................................................................................45
Bảng 3. 20: Bảng hình. ..............................................................................................45

viii


Bảng 3. 21: Bảng thông tin giới thiệu. ......................................................................46

Bảng 3. 22: Bảng thông tin liên hệ. ...........................................................................46
Bảng 3. 23: Bảng các liên kết website. .....................................................................46
Bảng 3. 24: Bảng danh ngôn. ....................................................................................46

ix


DANH SÁCH CÁC HÌNH
Hình 2. 1: Mô hình kiến trúc MVC .............................................................................8
Hình 2. 2: Mô hình MVC trong Zend Framework ......................................................9
Hình 3. 1: hình sơ đồ quan hệ các bảng cơ sở dữ liệu ..............................................47
Hình 3. 2: hình sơ đồ trang web ở trang chủ .............................................................49
Hình 3. 3: hình sơ đồ trang web ở trang quản lý .......................................................50
Hình 3. 4: hình sơ đồ trang web ở trang quản lý .......................................................51
Hình 4. 1: hình khung đăng nhập vào trang quản lý .................................................52
Hình 4. 2: hình trang quản lý ....................................................................................53
Hình 4. 3: hình danh sách tin tức ..............................................................................53
Hình 4. 4: hình trang chủ (trang mặc định) website..................................................55
Hình 4. 5: hình chức năng tìm kiếm nhanh. ..............................................................56
Hình 4. 6: hình chức năng tìm kiếm đầy đủ theo thể loại nhạc. ...............................56
Hình 4. 7: hình danh sách tin tức ..............................................................................57
Hình 4. 8: hình chi tiết tin tức ...................................................................................58
Hình 4. 9: hình danh sách nhạc .................................................................................59
Hình 4. 10: hình chi tiết nhạc dịnh dạng *.mp3 ........................................................60
Hình 4. 11: hình chi tiết nhạc từ youtube ..................................................................60
Hình 4. 12: hình danh sách phim ..............................................................................61
Hình 4. 13: hình chi tiết phim ...................................................................................61
Hình 4. 14: hình danh sách các sách .........................................................................62
Hình 4. 15: hình chi tiết sách ....................................................................................62
Hình 4. 16: hình danh sách thơ .................................................................................63

Hình 4. 17: hình chi tiết thơ ......................................................................................63
Hình 4. 18: hình danh sách tập ảnh ...........................................................................64
Hình 4. 19: hình chi tiết tập ảnh ................................................................................65
Hình 4. 20: hình phóng to khi chọn ảnh ....................................................................65
Hình 4. 21: hình danh sách các câu danh ngôn .........................................................66

x


Hình 4. 22: hình danh sách các câu hỏi và đặt câu hỏi .............................................66
Hình 4. 23: hình danh sách câu hỏi và đặt câu hỏi....................................................67
Hình 4. 24: hình tự động hoàn thành trong khung tìm kiếm .....................................70
Hình 4. 25: hình phân trang AJAX cho khung liên kết website. ..............................70
Hình 4. 26: hình bộ soạn thảo văn bản CKEditor .....................................................71
Hình 4. 27: hình chức năng đăng tải hình của CKFinder .........................................71
Hình 4. 28: hình chức năng phóng to hình ảnh .........................................................72
Hình 4. 29: hình xem trƣớc tin dùng tooltip .............................................................72
Hình 4. 30: hình áp dụng placeholder cho khung đăng nhập. ...................................73
Hình 4. 31: hình áp dụng border-radius và box-shadow cho hình. ...........................73

xi


DANH SÁCH CÁC CHỮ VIẾT TẮT, CHỮ TIẾNG ANH
 Các chữ viết tắt:
 AJAX (Asynchronous JavaScript And XML): Công nghệ tải một phần
nội dung website.
 API (Application Programming Interface): Giao diện lập trình ứng dung.
 CMS (Content Management System): Hệ thống quản lý nội dung.
 CSS (Cascading Style Sheet): Ngôn ngữ trang trí website.

 DOM (Document Object Model): Là một mô hình cho phép truy xuất
đến các thành phần của một tài liệu có cấu trúc.
 HTML (Hyper Text Markup Language): Ngôn ngữ đánh dấu siêu văn
bản.
 JSON (JavaScript Object Notation)Là cú pháp để lƣu trữ và trao đổi
thông tin văn bản.
 LDAP (Lightweight Directory Access Protocol): Giao thức ứng dụng
truy cập các cấu trúc thƣ mục.
 MVC (Model View Controller): Phƣơng pháp chia nhỏ một ứng dụng
thành ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác
nhau và ảnh hƣởng lẫn nhau.
 OOP (Object Oriented Programming): Lập trình hƣớng đối tƣợng.
 PDF (Portable Document Format): Là một loại định dạng tài liệu văn
bản di dộng.
 PHP (Hypertext Preprocessor): Một ngôn ngữ lập trình website phổ
biến.
 RSS (Really Simple Syndication): Một định dạng tập tin thuộc họ XML
dùng trong việc chia sẻ tin tức website.
 SQL (Structured Query Language): Ngôn ngữ truy vấn cấu trúc cơ sở dữ
liệu.

xii


 TCP/IP (Transmission Control Protocol/Internet Protocol): Tập hợp các
giao thức hỗ trợ việc lƣu truyền trên mạng.
 URL (Uniform Resource Locator): Địa chỉ liên kết trỏ đến đích của một
website.
 Các chữ tiếng Anh:
 Album: Bộ sƣu tập, tập ảnh, tập nhạc, …

 Banner: Bảng giới thiệu ở vị trí đầu trang web.
 Captcha: Nhập văn bản nhƣ trong hình hiển thị để xác nhận.
 Footer: Phần dƣới cùng của trang web.
 Menu: Thực đơn tùy chọn.
 Request: Yêu cầu.
 Username: Tên đăng nhập.
 Zoom: Phóng to, thu nhỏ một nội dung.

xiii


MỞ ĐẦU
Khi công nghệ thông tin ra đời, con ngƣời có thể tiếp cận mọi thứ ở hầu hết
mọi nơi trên thế giới một cách dễ dàng. Trong đó, website là một thành tựu nổi bật
góp phần không nhỏ cho bƣớc ngoặc này. Tuy nhiên, nhu cầu của con ngƣời không
ngừng tăng lên, chúng ta luôn cần những điều mới mẻ, từ thực tế đó yêu cầu các
công ty thiết kế web không dừng lại ở việc lập trình web bằng PHP tuần tự hay lập
trình hƣớng đối tƣợng, mà còn phải biết ứng dụng các công nghệ Framework hiện
đại, trong đó Zend Framework là một framework phổ biến đƣợc nhiều ngƣời dùng
nhất do là một PHP Framework đƣợc chính công ty phát triển ngôn ngữ PHP phát
triển. Chúng tôi chọn đồ án này, bên cạnh việc đƣợc trực tiếp trải nghiệm quá trình
thiết kế web thì chúng tôi còn muốn nhiều ngƣời nhận thấy đƣợc những nét đẹp và
những điều tốt đẹp mà Phật Giáo mang lại cho cuộc sống, đồng thời chúng tôi cũng
muốn thay mặt đảo Phú Quý-tỉnh Bình Thuận gửi một thông điệp đến khách du
lịch: Phú Quý- một hòn đảo tuyệt đẹp và nhiều bí ẩn đang chờ du khách đến khám
phá.
Khóa luận không chỉ xoay quanh việc nghiên cứu một công nghệ duy nhất là
Zend Freamework, mà còn kết hợp thêm nhiều công nghệ hiện đại khác nhƣ: CSS3,
nhúng các CMS và các thƣ viện mã nguồn AJAX, JQuerry,… vào website để mang
đến cho website những diện mạo mới, nhiều tính năng mới hiện đại hơn và từ đó sẽ

thu hút nhiều ngƣời xem hơn.

xiv


CHƢƠNG 1: TỔNG QUAN
1.1.

Giới thiệu
Hiện nay, thiết kế website đã trở nên khá phổ biến rộng rãi ở mọi nơi trên thế

giới, nên việc áp dụng các công nghệ mới là điều tất yếu cần phải có. Nhu cầu thiết
kế web trên các framework với các thƣ viện đƣợc lập trình sẵn ngày càng cao do
tính tiêu chuẩn hóa mã nguồn, tính thuận tiện và nhanh chóng,… Zend Framework
là một ví dụ điển hình, nó đƣợc chính công ty phát triển ngôn ngữ PHP
(www.zend.com) phát triển với kho thƣ viện hỗ trợ ngày càng đầy đủ và phong phú
luôn đƣợc cập nhật liên tục. Hầu hết các nhà nghiên cứu và lập trình web đều biết
đến Zend Framework vì nó khá phổ biến. Do Zend Framework là một dạng mã
nguồn mở, nên thƣ viện của Zend Framework không chỉ đƣợc phát triển bởi các kỹ
sƣ lập trình web chuyên môn, mà còn đƣợc cộng đồng mạng đóng góp phát triển,
nên Zend không ngừng phát triển và hoàn thiện.
Tuy nhiên, do thƣ viện hỗ trợ khổng lồ, nên việc tìm hiểu và thích nghi với
Zend Framework là một điều khó khăn và tốn thời gian. Vì thế, chúng tôi thực hiện
khóa luận này nhằm trình bày các vấn đề cơ bản về Zend Framework, sau đó là các
phần mở rộng về Zend Framework cũng nhƣ các vấn đề khác liên quan đến lập trình
thiết kế website. Bên cạnh đó còn tạo một website thực tế cho chùa Thạnh Lâm để
ứng dụng công nghệ Zend Framework.
1.2.

Mục tiêu

Khi tìm hiểu và ứng dụng Zend Framework, bên cạnh nắm vững phƣơng

thức lập trình theo hƣớng đối tƣợng, chúng ta còn có thể biết đƣợc cách thức hoạt
động của mô hình chuẩn MVC (Model-View-Controller) và sự thuận lợi mà các lớp
trong thƣ viện Zend Framework hỗ trợ nhƣ việc tạo form, kiểm tra và sàn lọc dữ
liệu đầu vào, chứng thực và phân quyền ngƣời dùng, tích hợp các ứng dụng và dịch
vụ của các hãng thứ ba vào trong dự án,...
Dựa vào lý thuyết đã tìm hiểu để ứng dụng vào xây dựng website chùa
Thạnh Lâm. Khi xây dựng website, chúng ta sẽ biết đƣợc cách thức hoạt động và
quản lý thực tế cụ thể từ phía nhà chùa, cũng nhƣ nhu cầu từ phía ngƣời dùng. Từ

1


đó rút ra kinh nghiệm thực tế cho công việc lập trình thiết kế website sau này. Đồng
thời giới thiệu nét đẹp văn hóa Phật Giáo đến cho mọi ngƣời, nhằm đem lại cuộc
sống an lành hạnh phúc. Qua đó, hình ảnh đảo Phú Quý-tỉnh Bình Thuận cũng đƣợc
quảng bá rộng rãi – một danh lam thắng cảnh đẹp của miền nam Việt Nam.
1.3.

Phạm vi đề tài
Đề tài khóa luận không chỉ xoay quanh việc nghiên cứu một công nghệ duy

nhất là Zend Freamework, mà còn kết hợp thêm nhiều công nghệ hiện đại khác liên
quan đến việc lập trình và thiết kế website nhƣ: công nghệ thiết kế CSS3 mới,
nhúng các CMS và các thƣ viện mã nguồn AJAX, JQuerry, … vào website để mang
đến cho website những diện mạo mới, nhiều tính năng mới hiện đại hơn và từ đó sẽ
thu hút nhiều ngƣời xem hơn.
Áp dụng các lý thuyết đã nghiên cứu trong khóa luận để tạo một trang web
hoạt động thực tiễn cho chùa Thạnh Lâm. Để thực hiện đƣợc điều đó, chúng tôi

phải tham khảo mô hình hoạt động, quản lý của các trang web nói chung và website
chùa nói riêng. Nắm bắt đƣợc nhu cầu thực tế của ngƣời dùng để lập trình và thiết
kế trang web một cách hợp lý, tối ƣu.
1.4.

Bố cục báo cáo
Khóa luận tập trung nghiên cứu các vấn đề sau:
 Tìm hiểu công nghệ Zend Framework
 Giới thiệu về Zend Framework.
 Mô hình MVC (Model-View-Controller) trong Zend Framework.
 Các lớp cơ bản trong thƣ viện Zend Framework.
 Ƣu điểm và khuyết điểm của Zend Framework.
 Lập trình thiết kế website chùa Thạnh Lâm
 Khảo sát và phân tích hiện trạng thực tế.
 Phân tích và thiết kế cơ sở dữ liệu cho website.
 Ứng dụng Zend Framework và các công nghệ khác vào thiết kế và lập
trình web cho chùa Thạnh Lâm.
 Hƣớng phát triển trong tƣơng lai.

2


CHƢƠNG 2: CƠ SỞ LÝ THUYẾT

2.1.

Cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và

đƣợc các nhà phát triển rất ƣa chuộng trong quá trình phát triển ứng dụng. Vì

MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt
động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất
mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có
truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên có thể tải về
MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên
bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix,
FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,...
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu
quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
MySQL đƣợc sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó
làm nơi lƣu trữ những thông tin trên các trang web viết bằng PHP hay Perl,...
2.2.

Ngôn ngữ đánh dấu siêu văn bản - HTML
HTML là dạng viết tắt của Hyper Text Markup Language (ngôn ngữ đánh

dấu siêu văn bản) đƣợc biết đến là một loại ngôn ngữ dùng để mô tả hiển thị các
trang web. Nhiều ngƣời nhầm tƣởng HTML là ngôn ngữ lập trình nhƣng sự thực
không phải nhƣ vậy, nó là một ngôn ngữ đánh dấu. Một ngôn ngữ đánh dấu là một
bộ các thẻ đánh dấu.
Lịch sử phát triển của HTML:
 1991: HTML
 1994: HTML2
 1-1997: HTML3
 12-1997: HTML4
 2000: XHTML1
 2009: HTML5

3



2.3.

Cascading Style Sheet – CSS
Cascading Style Sheets, hay còn gọi tắt là CSS, là những tập tin hỗ trợ cho

trình duyệt web trong việc hiển thị một trang HTML. Về cơ bản, các trang HTML
nhƣ bộ xƣơng - khuôn khổ cơ bản của một trang web, trong khi các file CSS sẽ cụ
thể hóa các thành phần của một trang nên đƣợc hiển thị nhƣ thế nào. CSS cho phép
kiểm soát phông chữ, màu chữ, kiểu nền...của một trang HTML.
CSS đã giúp cho việc thay đổi phong cách của một trang web đơn giản hơn
và đỡ tốn thời gian hơn, có thể thực hiện sự thay đổi trên một mục nào đó và sau đó
áp dụng sự thay đổi này trên toàn bộ trang web thay vì phải thực hiện trên từng mục
riêng lẻ nhƣ trƣớc đây.
Thế mạnh của CSS:
 Tách riêng phần định dạng ra khỏi nội dung trang web.
 CSS giúp ngƣời thiết kế kiểm soát toàn bộ giao diện trang web một
cách nhanh nhất và hiệu quả nhất nên ngƣời thiết kế sẽ tiết kiệm đƣợc
nhiều công sức.
 Do đƣợc tách rời khỏi nội dung của trang web, nên các mã HTML sẽ
gọn gàng hơn, giúp ngƣời thiết kế thuận tiện hơn trong việc chỉnh sửa
giao diện. Kích thƣớc của file .html cũng đƣợc giảm đáng kể. Hơn thế
nữa sẽ đƣợc trình duyệt tải một lần và dùng nhiều lần (cache), do đó
giúp trang web đƣợc load nhanh hơn.
Lịch sử phát triển của CSS:
 1996: CSS1
 1998: CSS2
 1999: CSS3
2.4.


Ngôn ngữ lập trình PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập

trình kịch bản hay một loại mã lệnh chủ yếu đƣợc dùng để phát triển các ứng dụng
viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với
web và có thể dễ dàng nhúng vào trang HTML. Do đƣợc tối ƣu hóa cho các ứng

4


dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây
dựng sản phẩm tƣơng đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh
chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
Lịch sử phát triển của PHP:
 1997: PHP/FI
 1998: PHP 3
 2000: PHP 4
 2004: PHP 5
 Đang phát triển PHP 6
2.5.

Lập trình hƣớng đối tƣợng
Lập trình hƣớng đối tƣợng (gọi tắt là OOP, từ chữ Anh ngữ object-oriented

programming), hay còn gọi là lập trình định hƣớng đối tƣợng, là kĩ thuật lập trình
hỗ trợ công nghệ đối tƣợng. OOP đƣợc xem là giúp tăng năng suất, đơn giản hóa độ
phức tạp khi bảo trì cũng nhƣ mở rộng phần mềm bằng cách cho phép lập trình viên
tập trung vào các đối tƣợng phần mềm ở bậc cao hơn. Ngoài ra, nhiều ngƣời còn
cho rằng OOP dễ tiếp thu hơn cho những ngƣời mới học về lập trình hơn là các
phƣơng pháp trƣớc đó.

Một cách giản lƣợc, đây là khái niệm và là một nỗ lực nhằm giảm nhẹ các
thao tác viết mã cho ngƣời lập trình, cho phép họ tạo ra các ứng dụng mà các yếu tố
bên ngoài có thể tƣơng tác với các chƣơng trình đó giống nhƣ là tƣơng tác với các
đối tƣợng vật lý.
Những đối tƣợng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữ liệu
mà chúng đƣợc nhìn nhận nhƣ là một đơn vị duy nhất. Mỗi đối tƣợng có một tên
riêng biệt và tất cả các tham chiếu đến đối tƣợng đó đƣợc tiến hành qua tên của nó.
Nhƣ vậy, mỗi đối tƣợng có khả năng nhận vào các thông báo, xử lý dữ liệu (bên
trong của nó), và gửi ra hay trả lời đến các đối tƣợng khác hay đến môi trƣờng.
Các tính chất cơ bản:
 Tính trừu tƣợng (abstraction): Đây là khả năng của chƣơng trình bỏ
qua hay không chú ý đến một số khía cạnh của thông tin mà nó đang

5


trực tiếp làm việc lên, nghĩa là nó có khả năng tập trung vào những
cốt lõi cần thiết. Mỗi đối tƣợng phục vụ nhƣ là một "động tử" có thể
hoàn tất các công việc một cách nội bộ, báo cáo, thay đổi trạng thái
của nó và liên lạc với các đối tƣợng khác mà không cần cho biết làm
cách nào đối tƣợng tiến hành đƣợc các thao tác. Tính chất này thƣờng
đƣợc gọi là sự trừu tƣợng của dữ liệu.
Tính trừu tƣợng còn thể hiện qua việc một đối tƣợng ban đầu có thể
có một số đặc điểm chung cho nhiều đối tƣợng khác nhƣ là sự mở
rộng của nó nhƣng bản thân đối tƣợng ban đầu này có thể không có
các biện pháp thi hành. Tính trừu tƣợng này thƣờng đƣợc xác định
trong khái niệm gọi là lớp trừu tƣợng hay lớp cơ sở trừu tƣợng.
 Tính đóng gói (encapsulation) và che giấu thông tin (information
hiding): Tính chất này không cho phép ngƣời sử dụng các đối tƣợng
thay đổi trạng thái nội tại của một đối tƣợng. Chỉ có các phƣơng thức

nội tại của đối tƣợng cho phép thay đổi trạng thái của nó. Việc cho
phép môi trƣờng bên ngoài tác động lên các dữ liệu nội tại của một
đối tƣợng theo cách nào là hoàn toàn tùy thuộc vào ngƣời viết mã.
Đây là tính chất đảm bảo sự toàn vẹn của đối tƣợng.
 Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông
điệp (message). Việc gửi các thông điệp này có thể so sánh nhƣ việc
gọi các hàm bên trong của một đối tƣợng. Các phƣơng thức dùng trả
lời cho một thông điệp sẽ tùy theo đối tƣợng mà thông điệp đó đƣợc
gửi tới sẽ có phản ứng khác nhau. Ngƣời lập trình có thể định nghĩa
một đặc tính (chẳng hạn thông qua tên của các phƣơng thức) cho một
loạt các đối tƣợng gần nhau nhƣng khi thi hành thì dùng cùng một tên
gọi mà sự thi hành của mỗi đối tƣợng sẽ tự động xảy ra tƣơng ứng
theo đặc tính của từng đối tƣợng mà không bị nhầm lẫn.
Thí dụ khi định nghĩa hai đối tƣợng "hinh_vuong" và "hinh_tron" thì
có một phƣơng thức chung là "chu_vi". Khi gọi phƣơng thức này thì

6


nếu đối tƣợng là "hinh_vuong" nó sẽ tính theo công thức khác với khi
đối tƣợng là "hinh_tron".
 Tính kế thừa (inheritance): Đặc tính này cho phép một đối tƣợng có
thể có sẵn các đặc tính mà đối tƣợng khác đã có thông qua kế thừa.
Điều này cho phép các đối tƣợng chia sẻ hay mở rộng các đặc tính sẵn
có mà không phải tiến hành định nghĩa lại. Tuy nhiên, không phải
ngôn ngữ định hƣớng đối tƣợng nào cũng có tính chất này.
2.6.

Zend Framework


2.6.1. Giới thiệu
Năm 2005, Andi Gutmans của Zend Technologies đã công bố Zend‟s PHP
Collaboration Project và giới thiệu Zend Framework. Phiên bản 1.0 đƣợc phát hành
vào 7/2007 và các phiên bản mới đƣợc ra đời thƣờng xuyên sau đó. Phiên bản mới
nhất hiện nay là Zend Framework 2.0.
Zend Framework là một framework mã nguồn mở nhằm phát triển các ứng dụng
và dịch vụ web trên nền ngôn ngữ lập trình PHP. Zend Framework là một PHP
Framework đƣợc chính công ty phát triển ngôn ngữ PHP phát triển.Vì vậy sẽ không
có lý do nào mà Zend Framework sẽ bị biến mất trong tƣơng lai trừ khi PHP không
tồn tại nữa. Những thành viên phát triển Zend Framework là những chuyên gia nổi
tiếng về mã nguồn mở và PHP trên thế giới.
Zend Framework đƣợc triển khai bằng 100% mã hƣớng đối tƣợng nên có thể dễ
dàng thừa kế, nâng cấp các ứng dụng. Zend Framework cung cấp một mô hình
MVC mạnh mẽ với hiệu suất cao. Cơ cấu thành phần của Zend Framework là đơn
nhất, mỗi thành phần đƣợc thiết kế ít phụ thuộc vào các thành phần khác. Kiến trúc
này cho phép các nhà phát triển dễ sử dụng các thành phần riêng lẻ. Zend sử dụng
những kiểu mẫu thiết kế (design pattern) hiện đại, hỗ trợ tối đa tính linh hoạt, khi
nghiên cứu và làm việc trên Zend Framework ta thu đƣợc rất nhiều kiến thức mới.
Thƣ viện Zend rất đầy đủ, phong phú và chúng ta có thể tự phát triển thêm.

7


2.6.2. Mô hình MVC trong Zend Framework
MVC (Model View Controller) là tên một phƣơng pháp chia nhỏ một ứng
dụng thành ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau và
ảnh hƣởng lẫn nhau, đó là models, views, và controllers. Mô hình MVC phát triển
nhằm mục tiêu giảm thiểu độ phức tạp của phần mềm, thuận tiện cho việc phát
triển, nâng cấp, phân rã các thành phần (module) đễ dễ dàng thay thế, thêm hoặc
sửa chữa các thành phần này.

Các thành phần trong mô hình MVC:
Trong kiến trúc này, hệ thống đƣợc chia thành 3 tầng tƣơng ứng đúng với tên
gọi của nó (Model – View – Controller). Ở đó nhiệm vụ cụ thể của các tầng đƣợc
phân chia nhƣ sau:

Hình 2. 1: Mô hình kiến trúc MVC
 Controller (Tầng điều khiển): Là phần điều khiển của ứng dụng, điều hƣớng
các nhiệm vụ (task) đến đúng phƣơng thức (method) có chức năng xử lý
nhiệm vụ đó. Nó chịu trách nhiệm xử lý các tác động về mặt giao diện, các
thao tác đối với models, và cuối cùng là chọn một hiển thị (view) thích hợp
để hiển thị ra màn hình.

8


 Model (Tầng dữ liệu): Là một đối tƣợng hoặc một tập hợp các đối tƣợng biểu
diễn cho phần dữ liệu của chƣơng trình. Nó đƣợc giao nhiệm vụ cung cấp dữ
liệu cho cơ sở dữ liệu và lƣu dữ liệu vào các kho chứa dữ liệu. Tất cả các
nghiệp vụ logic đƣợc thực thi ở Model. Dữ liệu vào từ ngƣời dùng sẽ thông
qua View đến Controller và đƣợc kiểm tra ở Model trƣớc khi lƣu vào cơ sở
dữ liệu. Việc truy xuất, xác nhận, và lƣu dữ liệu là một phần của Model.
 View (Tầng giao diện): Là phần giao diện với ngƣời dùng, bao gồm việc
hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn
lựa…, để ngƣời dùng có thể thêm, xóa. sửa, tìm kiếm và làm các thao tác
khác đối với dữ liệu trong hệ thống. Thông thƣờng, các thông tin cần hiển thị
đƣợc lấy từ thành phần models.

Hình 2. 2: Mô hình MVC trong Zend Framework
Tóm lại, chu trình hoạt động tổng quát của mô hình MVC nhƣ sau: Controller
tiếp nhận yêu cầu từ phía ngƣời dùng, sau đó phân tích các yêu cầu đó để lấy dữ

liệu từ các Model, dữ liệu đƣợc trả về Controller để chuyển tới phần View để hiển
thị hồi đáp cho yêu cầu của ngƣời dùng.
2.6.3. Cơ bản về các thành phần trong Zend Framework
Có thể chia các thành phần trong Zend Framework thành 6 nhóm chính:
 Thành phần MVC: cung cấp đầy đủ các tính năng để xây dựng ứng dụng
theo mô hình MVC, tách phần hiển thị ra khỏi phần xử lý. Bao gồm các lớp
sau:

9


 Zend_Application, Zend_Application_Bootstrap,
Zend_Application_Resource, Zend_Application_Modules, …
 Zend_Controller_Front, Zend_Controller_Action,
Zend_Controller_Dispatch, Zend_Controller_Plugin,
Zend_Controller_Router, …
 Zend_Layout, Zend_View, Zend_View_Helper, …
 Thành phần xác nhận và truy cập: hỗ trợ ngƣời xây dựng web đảm bảo tính
an toàn, bảo mật, quản lý và phân quyền cho ngƣời dùng một cách nhanh
chóng và đơn giản. Bao gồm các lớp sau:
 Zend_Acl
 Zend_Auth
 Zend_Session, …
 Thành phần quốc tế hóa: Zend Framework cho phép ta xây dựng ứng dụng
bằng nhiều ngôn ngữ, địa phƣơng hóa ứng dụng với ngƣời dùng ở từng khu
vực nhƣ ngày, giờ, đơn vị tính, tiền tệ, ngôn ngữ,… Bao gồm các lớp sau:
 Zend_Date
 Zend_Currency
 Zend_Local
 Zend_Translate

 Thành phần giao tiếp tƣơng tác: Zend Framework có thể đọc dữ liệu từ các
trang web khác. Bao gồm các lớp sau:
 Zend_Http_Client
 Zend_XmlRpc_Client
 Thành phần dịch vụ web: Dùng để sử dụng các dịch vụ của các hãng khác
nhƣ: StrikeIron, Microsoft, Yahoo, Amazon,…
 Zend_Service
 Zend_Service_Amazon
 Zend_Service_Yahoo, …
 Thành phần cốt lỗi: giúp tăng tốc website một cách đáng kể

10


×