Tải bản đầy đủ (.doc) (77 trang)

Thiết kế giao diện và xây dựng Website

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 (6.66 MB, 77 trang )

Đồ án tốt nghiệp
Khoa Công nghệ thông tin

LỜI NÓI ĐẦU
Trong thời điểm hiện theo xu hướng phát triển trên toàn cầu nay Việt Nam đang
phát triển về mọi mặt kinh tế, khoa học kỹ thuật, trình độ dân trí,..Và nhu cầu của con
người cũng cao hơn, với nhu cầu đi lại của con người cũng đã được đáp ứng với rất
nhiều các phương tiện giao thông hiện đại như xe hơi, máy bay, thậm chí là tên lửa, tàu
không gian vũ trụ sẽ có vào một tương lai không xa. Nếu những năm về trước ở Việt
Nam phương tiện chủ yếu được xem là xe máy, thì hiện nay xe hơi cũng đang dần
chiếm lĩnh vị trí đó.
Nhưng vấn đề là nơi đặt một chiếc xe hơi không đơn giản như một chiếc xe
máy hay xe đạp, đôi khi bạn có thừa tiền mua xe hơi nhưng vấn đề là để nó ở đâu, cách
chỗ bạn ở bao xa, khi lái xe ra có tiện đường không,...
Bên cạnh đó, xu hướng sử dụng bản đồ trực tuyến để tìm vị trí, thông tin, đường
đi,…cho một địa điểm cụ thể đang được áp dụng phổ biến và đã có được nhiều hiệu
ứng tốt từ người sử dụng.
Xuất phát từ nhu cầu và xu hướng công nghệ trên, đồng thời được sự hướng dẫn
tận tình của thầy Phạm Trí Công, em đã chọn đề tài cho đồ án tốt nghiệp của mình là:
“Ứng dụng google maps xây dựng website tìm bãi đỗ xe oto”.
Hà nội, ngày 18 tháng 06 năm 2011
Sinh viên thực hiện:
Nguyễn Thị Mai

Nguyễn Thị Mai
Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin


LỜI CẢM ƠN
Trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp, em đã nhận được
sự hướng dẫn, giúp đỡ quý báu của các thầy cô và các bạn. Với lòng kính trọng và biết
ơn sâu sắc em xin được bày tỏ lới cảm ơn chân thành tới:
Giảng Viên Phạm Trí Công người thầy đã tận tình giúp đỡ, trực tiếp chỉ bảo,
hướng dẫn em trong suốt quá trình thực tập và làm đồ án tốt nghiệp. Trong quá trình
học tập với thầy em không ngừng học tâp và tiếp thu thêm được rất nhiều kiến thức bổ
ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu nghiêm túc, hiệu quả.
Đây là những điều rất cần thiết cho em trong quá trình học tập và làm việc sau này. Em
cảm ơn thầy.
Các thầy cô trong trường Đại học Thủy Lợi nói chung và các thầy cô trong
khoa Công nghệ thông tin nói riêng đã tận tình giảng dạy, truyền đạt cho em những
kiến thức và kinh nghiệm quý báu trong suốt thời gian học tập tại trường.
Em xin gửi lời cảm ơn tới gia đình, bạn bè đã luôn ở bên động viên, góp ý, giúp
đỡ em trong suốt quá trình học tập của mình.
Mặc dù em đã cố gắng hoàn thành đồ án tốt nghiệp của mình với khả năng của
mình, nhưng do năng lực và kinh nghiệm còn hạn chế nên không tránh khỏi những
thiếu sót. Em kính mong nhận được sự cảm thông và tận tình góp ý chỉ bảo của các
thầy cô và các bạn.
Em xin chân thành cảm ơn!

Nguyễn Thị Mai
Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

MỤC LỤC


Chương 1 :...............................................................................................TỔNG QUAN
...................................................................................................................................... 1
1.1 Giới thiệu đề tài.................................................................................................1
1.2 Nội dung đề tài...................................................................................................1
1.3 Chức năng chính của website...........................................................................2
1.4 Hướng giải quyết...............................................................................................2
1.5 Lựa chọn công nghệ...........................................................................................3
Chương 2 :.....................TÌM HIỂU MÔ HÌNH MVC, PHP, PHP FRAMEWORK
...................................................................................................................................... 6
2.1 PHP..................................................................................................................... 6
2.1.1 Giới thiệu PHP..............................................................................................6
2.1.1 Vì sao chọn PHP...........................................................................................7
2.2 Mô hình MVC..................................................................................................10
2.2.1 Giới thiệu mô hình MVC............................................................................10
2.2.2 Ưu nhược điểm của mô hình MVC.............................................................11
2.3 PHP Framework..............................................................................................12
2.3.1 PHP Framewrk là gì?..................................................................................12
2.3.2 Tại sao chúng ta nên sử dụng PHP Framework?.........................................12
2.3.3 Khi nào nên sử dụng PHP Framework?.......................................................13
2.3.4 Những điểm cần lưu ý khi lựa chọn một PHP Framework..........................14
2.3.5 PHP Framework phổ biến nhất hiện nay.....................................................14
2.4 Kohana Framework........................................................................................20
2.4.1 Giới thiệu Kohana.......................................................................................20
2.4.2 Cấu trúc Kohana..........................................................................................21
2.4.3 So sánh Kohana và các framework khác.....................................................23
2.4.4 Cài đặt Kohana............................................................................................23
2.5 Simple Framework..........................................................................................25
2.5.1 Giới thiệu simple Framework MVC............................................................25
2.5.2 Lợi ích khi sử dụng simple framework MVC..............................................27
Nguyễn Thị Mai

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Chương 3 :........................................................GIỚI THIỆU GOOGLE MAPS API
.................................................................................................................................... 29
3.1 Map API là gì?.................................................................................................29
3.2 Google map API...............................................................................................32
Chương 4 :..............................................PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
.................................................................................................................................... 33
4.1 Phân tích hệ thống...........................................................................................33
4.1.1 Đối với người dùng.....................................................................................33
4.1.2 Đối với người quản trị.................................................................................34
4.2 Thiết kế hệ thống.............................................................................................37
4.2.1 Biểu đồ phân cấp chức năng........................................................................37
4.2.2 Biểu UserCase.............................................................................................39
4.2.3 Mô hình Sequence Diagram........................................................................41
4.3 Thiết kế CSDL.................................................................................................55
4.3.1 Các thực thể trong hệ thống.........................................................................55
4.3.2 Mô hình quan hệ giữa các thực thể của hệ thống.........................................58
4.3.3 Mô hình dữ liệu...........................................................................................59
4.3.4 Các bảng của cơ sở dữ liệu..........................................................................60
Chương 5 :............................THIẾT KẾ GIAO DIỆN VÀ XÂY DỰNG WEBSITE
.................................................................................................................................... 63
5.1 Trang người dùng............................................................................................63
5.2 Trang người quản trị.......................................................................................68
Chương 6 :................................................................................................KẾT LUẬN
.................................................................................................................................... 72


Nguyễn Thị Mai
Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

TỔNG QUAN

Chương 1 :

1.1 Giới thiệu đề tài
Trong thời đại công nghệ thông tin phát triển như vũ bão và được áp dụng vào
nhiều lĩnh vực trong đời sống như giáo dục, y tế, quản lý,…Qua đó, người ta cũng thấy
được tầm quan trọng xâu sắc của công nghệ thông tin.
Trong thời kỳ hội nhập, kinh tế nước ta càng phát triển nhu cầu và mức sống
của con người tăng lên, điển hình là phương tiện đi lại bằng ô-tô ngày càng được ưa
chuộng nhất là tại các thành phố lớn. Tuy nhiên, cùng với sự phát triển đó thì dân số
cũng không ngừng phát triển, diện tích đất càng được chú trọng. Trong các thành phố
lớn, nơi đỗ xe sẽ được xây dựng nhiều hơn và có quy hoặch cụ thể hơn. Và vấn đề đặp
ra là: khi bạn đang lái xe trên đường và muốn tìm một vị trí đỗ xe phù hợp để không
mất thời gian, hay nhà bạn vừa mua xe và muốn tìm một bãi đỗ để thuận tiện mỗi khi
bạn đỗ xe,…
Với kiến thức đã học, qua đề tài này em muốn áp dụng công nghệ thông tin vào
một phần nhỏ trong đời sống, cụ thể em sẽ xây dựng một website ứng dụng google
maps nhằm hỗ trợ cho việc tìm kiếm vị trí, thông tin các bãi đỗ, đồng thời khi được
ghé qua trang web người xem có thể đọc tin tức liên quan, tham khảo các dịch vụ hay
bổ xung các kinh nghiệm để lái xe, sử dụng xe an toàn hơn. Và qua đây cũng nhằm
quảng bá cho các bãi đỗ xe cũng như giúp họ ngày càng phát triển và hoàn thiện để

phục vụ nhu cầu đời sống của xã hội.

1.2 Nội dung đề tài

Trong đề tài này, trang web được xây dựng sẽ xoay quang những nội dung chủ
yếu:
Tìm kiếm thông tin vị trí các bãi đỗ xe trên bản đồ.
Tìm kiếm thông tin cụ thể về các bãi đỗ xe như: giá cả, diện tích,…
Cung cấp các thông tin về bãi đỗ xe ô-tô, ô tô, giao thông,…

Nguyễn Thị Mai

1

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Các thông tin về dịch vụ cung cấp liên quan đến xe ô –tô.
Cung cấp thông tin về kinh nghiệm như: kinh nghiệm lái xe, đỗ xe, bão dưỡng
xe,…
Ngoài ra, người xem có thể trực tiếp đánh giá mỗi bãi đỗ qua comment.

1.3 Chức năng chính của website
 Chức năng quản trị website:
Quản lý các chuyên mục.
Quản lý các bài viết.
Quản lý thông tin bãi đỗ.

Cập nhập, chỉnh sửa dữ liệu thường xuyên.
Quản lý user trong phần admin.
 Chức năng người dùng:
Tìm kiếm thông tin bãi đỗ.
Xem thông tin các bài viết mới.
Đánh giá các bãi đỗ thông qua comment.

1.4 Hướng giải quyết
Để xây dựng được Website có tính thực tế cao, dễ sử dụng, thân thiện, thỏa mãn các
yêu cầu với người dùng thì yêu cầu:
Cần phải khảo sát thông tin của hệ thống một cách chi tiết và chính xác
Phân tích dữ liệu đầu vào, đầu ra một cách rõ ràng, chặt chẽ và chính xác.
Trên cơ sở những thông tin đã thu thập được tiến hành xây dựng sơ đồ chức
năng ngiệp vụ, mô hình UseCase, mô hình Sequence Diagram, mô hình Class
Diagram, mô hình quan hệ giữa các thực thể,mô hình quan hệ…
Nguyễn Thị Mai

2

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Thiết kế một số modul quan trọng( lưu trữ, tìm kiếm, xử lý thông tin).
Thiết kế giao diện: Là yêu cầu khá quan trọng, giao diện phải đảm bảo vừa
mang tính nghiệp vụ lại vừa đẹp mắt, dễ sử dụng,thân thiện với người dùng…
Lập dự kiến xây dựng cơ sở dữ liệu cho hệ thống, phân tích, đánh giá được
phạm vi lưu trữ, độ an toàn của dữ liệu khi vận hành.

Kết quả cuối cùng của hệ thống phải có tính ưu việt, khả năng xử lý được
lượng thông tin lớn, lưu trữ khoa học, thuận tiện và bảo mật cao

1.5 Lựa chọn công nghệ
Hiện nay có rất nhiều công nghệ được sử dụng để phát triển website (PHP, ASP,
ASP.NET, JSP...) để lựa chọn công cụ phát triển một cách thích hợp dựa trên các thông
số cơ bản như: tính kinh tế, khả năng ứng dụng, mức độ bảo mật, môi trường hỗ trợ và
tốc độ xử lý... Đây là bảng so sánh các công nghệ phát triển website:
PHP:
Tốc độ xử lý nhanh, hiệu quả cao
Chi phí giá thành thấp(ngôn ngữ free không tốn chi phí mua bản quyền)
Thời gian code và triển nhanh, đơn giản
Số lượng nhà cung cấp hosting nhiều, dễ lựa chọn
Số nhà cung cấp website nhiều, khả năng chọn lựa một trang web phù hợp tốt
hơn
Khả năng mở rộng và phát triển dễ dàng và nhanh chóng
Các công cụ và công nghệ hỗ trợ phong phú, đa dạng. Phát triển web trên nền
web 2.0. Sử dụng công nghệ Ajax làm cho quá trình duyệt web nhanh chóng và
thân thiện hơn đối với người dùng.

ASP.NET:
Tốc độ xử lý nhanh, hiệu quả cao
Nguyễn Thị Mai

3

Lớp 49TH1


Đồ án tốt nghiệp

Khoa Công nghệ thông tin

Chi phí giá thành cao (do một phần phải mua bản quyền)
Thời gian code và triển khai hơi phức tạp, chậm hơn PHP
Số lượng nhà cung cấp hosting không nhiều, vì vậy khó cho việc lựa chọn
Số nhà cung cấp website nhiều, khả năng chọn lựa một trang web phù hợp tốt
hơn
Mở rộng và phát triển website dẽ dàng
Các công cụ và công nghệ hỗ trợ phong phú, đa dạng. Phát triển web trên nền
web 2.0. Sử dụng công nghệ Ajax làm cho quá trình duyệt web nhanh chóng và
thân thiện hơn đối với người dùng.
ASP
Tốc độ xử lý rất chậm
Chi phí giá thành trung bình (do một phần phải mua bản quyền)
Thời gian code và triển khai trung bình
Số lượng nhà cung cấp hosting không nhiều, vì vậy khó cho việc lựa chọn
Số nhà cung cấp website ít
Khả năng mở rộng và phát triển website khó khăn
Công cụ và công nghệ hỗ trợ ít, khó tìm
JSP/java
Hơi chậm
Chi phí giá thành cao
Thời gian code và triển khai hơi phức tạp, chậm hơn PHP
Số lượng nhà cung cấp hosting ít, khó tìm
Số nhà cung cấp website ít, khả năng chọn lựa để xây dựng 1trang web phù hợp
rất khó
Khả năng mở rộng và phát triển website khó khăn
Nguyễn Thị Mai

4


Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Công cụ và công nghệ hỗ trợ ít, khó tìm.

Đối với đa số website nên chọn ngôn ngữ phát triển website PHP/MySQL vì giá
thành tương đối, tốc độ xử lý nhanh, dễ lựa chọn nhà cung cấp…. Sau quá trình xem
xét và cân nhắc, em đã lựa chọn ngôn ngữ PHP/MySQL để xây dựng website đồng
thời kết hợp với các công cụ:
Hệ quản trị cơ sở dữ liệu MYSQL 5.1.33 .
Framework MVC được viết bằng ngôn ngữ PHP.
Thiết kế giao diện bằng ngôn ngữ HTML và CSS
Cài đặt localhost trên window với XAMPP server version 1.7.1 để chạy chương trình

Nguyễn Thị Mai

5

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Chương 2 :


TÌM HIỂU MÔ HÌNH MVC, PHP, PHP FRAMEWORK

2.1 PHP
2.1.1 Giới thiệu PHP
PHP được phát triển từ ngôn ngữ kịch bản (script) với mục địch xây dựng trang
Web cá nhân (Personal Home Page). Sau đó đã được phát triển thành một ngôn ngữ
hoàn chỉnh và được ưa chuộng trên toàn thế giói trong việc phát triển các ứng dụng
Web based.
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 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.
Chương trình PHP hoạt động như thế nào? Trước tiên chúng ta hãy tìm hiểu
cách thức hoạt động của hệ trình duyệt (Web Client) và máy chủ cung cấp dịch vụ Web
(Web server ):
Bước 1: Trình duyệt gửi một yêu cầu HTTP đến máy chủ, yêu cầu một file nào đó.
Bước 2: Máy chủ sẽ chuyển yêu cầu này đến chương trình xử lý tương ứng,
chính là chương trình Web server.
Bước 3: Web server phân tích chuỗi yêu cầu nhận được, kiểm tra xem trình
duyệt ở máy khách yêu cầu gì. Nếu đó là các file bình thường (không phải là các file
chứa các đoạn mã script thực thi phía máy chủ), nó sẽ tìm kiếm file đó và trả về cho
trình duyệt ở máy khách. Còn nếu đó là các file chứa các đoạn mã script thực thi phía
máy chủ (các chương trình CGI, hay các file thư viện liên kết động ISAPI, hoặc các
file *.asp hay *.php), nó sẽ triệu gọi chương trình thực thi các đoạn mã này. Chương
trình này sẽ chịu trách nhiệm chạy các đoạn mã, trả chúng về cho Web server dưới
khuôn dạng của HTML. Sau đó, Web server mới trả kết quả lấy được cho trình duyệt.
Nguyễn Thị Mai


6

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Như vậy, chương trình của bạn phải được thực thi trên máy chủ, sau đó mới
được trả về cho trình duyêt. Và đây chính là cái gọi là "Trang Web động". Không như
các trang web tĩnh, trang web động cho phép bạn có sự tương tác với máy chủ thông
qua các đoạn script thực thi phía server. Nhờ có sự tương tác này, bạn có thể truy xuất
cơ sở dữ liệu, lấy thông tin người sử dụng, điều khiển các hoạt động khác...

2.1.1 Vì sao chọn PHP
PHP Rất đơn giản đối với nhưng người còn xa lạ với chương trình này đây là sự
lôi cuốn mạnh mẽ nhất. Thậm chí là rất ít hoặc không có một chương trình nào có thể
tạo ra một tốc độ đáng kinh ngặc trong việc phát triển bành trướng như PHP. Bởi vì nó
đc thiết kế đặc biệt trong các ứng dụng Web, PHP xây dựng được rất nhiều tính năng
để đáp ứng những nhu nhu cầu chung nhất
PHP là một mã nguồn thông tin mở: Bởi vì mã nguồn của PHP sẵn có nên cộng
đồng các nhà phát triển Web luôn có ý thức cải tiến nó, nâng cao để khắc phục các lỗi
trong chương trình này. PHP rất ổn định và tương hợp, PHP Ngoài ra PHP chạy được
trên nhiều hệ điều hành khác nhau.
 Mã nguồn mở
Có lẽ nhiều bạn cũng biết PHP là một sản phẩm mã nguồn mở (Open-source)
nên việc cài đặt và tùy biến PHP là miễn phí và tự do.
Vì có ưu thế nguồn mở nên PHP có thể được cài đặt trên hầu hết các Web
Server thông dụng hiện nay như Apache, IIS…

 Tính Cộng đồng của PHP
Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng
PHP được coi là khá lớn và có chất lượng.
Với cộng đồng phát triển lớn, việc cập nhật các bản vá lỗi phiên bản hiện tại
cũng như thử nghiệm các phiên bản mới khiến PHP rất linh hoạt trong việc
hoàn thiện mình.
Cộng đồng hỗ trợ, chia sẽ kinh nghiệm của PHP cũng rất dồi dào. Với rất nhiều
diễn đàn, blog trong và ngoài nước nói về PHP đã khiến cho quá trình tiếp cận
của người tìm hiểu PHP được rút ngắn nhanh chóng.
Nguyễn Thị Mai

7

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

 Thư viện phong phú
Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú và đa
dạng. Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…) cho tới
những cái lớn hơn như Framework (Zend, CakePHP, CogeIgniter, Symfony,
kohana…) ,ứng dụng hoàn chỉnh (Joomla, Wordpress, PhpBB…)
Với thư viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ
dàng và nhanh chóng. Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi
bật và cũng là nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để
phát triển web.
 Hỗ trợ kết nối nhiều hệ cơ sở dữ liệu
Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và PHP

cũng đáp ứng rất tốt nhu cầu này. Với việc tích hợp sẵn nhiều Database Client
trong PHP đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu
thông dụng.
Việc cập nhật và nâng cấp các Database Client đơn giản chỉ là việc thay thế
các Extension của PHP để phù hợp với hệ cơ sở dữ liệu mà PHP sẽ làm việc.
Một số hệ cơ sở dữ liệu thông dụng mà PHP có thể làm việc là: MySQL, MS
SQL, Oracle, Cassandra…
 Lập trình hướng đối tượng
Ngày nay, khái niệm lập trình hướng đối tượng (OOP) đã không còn xa lạ với
lập trình viên. Với khả năng và lợi ích của mô hình lập trình này nên nhiều
ngôn ngữ đã triển khai để hỗ trợ OOP.
Từ phiên bản PHP 5, PHP đã có khả năng hỗ trợ hầu hết các đặc điểm nổi bật
của lập trình hướng đối tượng như là Inheritance, Abstraction, Encapsulation,
Polymorphism, Interface, Autoload…
Với việc ngày càng có nhiều Framework và ứng dụng PHP viết bằng mô hình
OOP nên lập trình viên tiếp cận và mở rộng các ứng dụng này trở nên dễ dàng
và nhanh chóng.
 Tốc độ :
Nhờ vào sức mạnh của Zend Engine, khi so sánh PHP với ASP, có thể thấy
PHP vượt hơn ở một số test, vượt trội ở tốc độ biên dịch.
Nguyễn Thị Mai

8

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin


 Tính Bảo mật
Bản thân PHP là mã nguồn mỡ và cộng đồng phát triển rất tích cực nên có thể
nói PHP khá là an toàn.
PHP cũng cung cấp nhiều cơ chế cho phép bạn triển khai tính bảo mật cho ứng
dụng của mình như session, các hàm filter dữ liệu, kỹ thuật ép kiểu, thư viện
PDO (PHP Data Object) để tương tác với cơ sở dữ liệu an toàn hơn.
Kết hợp với các kỹ thuật bảo mật ở các tầng khác thì ứng dụng PHP sẽ trở nên
chắc chắn hơn và đảm bảo hoạt động cho website.
 Khả năng mở rộng cho PHP
Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở
rộng cho ứng dụng PHP có thể nói là không có giới hạn.
Với thư viện phong phú và khả năng mở rộng lớn, ứng dụng PHP có thể tương
tác với hầu hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã
hóa, thao tác file PDF, Office, Email, Streaming…
Bạn hoàn toàn có thể tự xây dựng cho mình các Extension để tối ưu, bổ sung
các chức năng cho PHP cũng như tối ưu luôn Core của PHP để phục vụ cho
các mục đích mở rộng website của mình
 Rút ngắn thời gian phát triển :
PHP cho phép bạn tách phần HTML code và phần script, do đó có thể độc lập
giữa công việc phát triển mã và thiết kế. Điều này vừa giúp lập trình viên dễ
dàng hơn vừa có thể làm cho chương trình mềm dẻo hơn trong việc thay đổi
giao diện.

Nguyễn Thị Mai

9

Lớp 49TH1



Đồ án tốt nghiệp
Khoa Công nghệ thông tin

2.2 Mô hình MVC

Model

3.Response 2.Request

4.Request

controller

5.Response

view

1.Request

user

Hình2.1 Mô hình MVC

2.2.1 Giới thiệu mô hình MVC
MVC = Model - View - Controller
Kiến trúc MVC là việc chia tất cả mục của một ứng dụng ra làm ba thành phần
(component) khác nhau Model, View và Controller. Các thành phần của kiến trúc
MVC một trách nhiệm duy nhất và không phụ thuộc vào các thành phần khác. Những
sự thay đổi trong một thành phần sẽ không có hoặc là có rất ít ảnh hưởng đến các
thành phần khác. Các trách nhiệm của mỗi thành phần là:

Model ( tầng dữ liệu ): Là khối giao tiếp với database. Model đượ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 đượ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 hiển thị): Là phần giao diện với người dùng. View hiển thị các
thông tin cho người dùng của ứng dụng và được giao nhiệm vụ cho việc nhận
các dữ liệu vào từ người dùng, gửi đi các yêu cầu đến bộ điều khiển, sau đó là
nhận lại các phản hồi từ bộ điều khiển và hiển thị kết quả cho người dùng. Các
trang HTML, JSP, các thư viện thể và các file nguồn là một phần của thành
phần View.
Nguyễn Thị Mai

10

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Controller (Tầng điều khiển): Controller là tầng trung gian giữa Model và
View. Sẽ là nơi bạn trực tiếp viết các xử lý lấy các request từ url và form để
thao tác trực tiếp với Model, sau đó dùng View để hiển thị ra.
Với cơ sở là kiến trúc MVC, ta có thể xây dựng các ứng dụng của mình, tránh
được rất nhiều những vất vả khi bảo trì, thay đổi. Những thay đổi ở mỗi thành phần
thường rất ít khi ảnh hưởng đến các thành phần khác.
2.2.2 Ưu nhược điểm của mô hình MVC
 Ưu điểm
Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm

được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình
đến tổ chức database. Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp..
Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần của
một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong
từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tán
náo loạn trong cả chương trình.
Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng
vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.
Ngoài vấn đề về sự phụ thuộc, giao diện của phần mềm cũng rất phức tạp khi
muốn test. Người ta thường sử dụng người thật để test giao diện, hoặc sẽ phải
viết những script test để giả lập những thao tác của con người. Để viết những
script này thường rất mất thời gian và phức tạp. MVC không giải quyết được
vấn đề về test giao diện, nhưng nó tách rời phần dữ liệu Model ra khỏi những
xử lý hiển thị và cho phép MODEL có thể được test độc lập với phần hiển thị
và điều đó sẽ giảm thiểu những test case liên quan đến giao diện.

 Nhược điểm
Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời gian
trong quá trình phát triển.
Tốn thời gian trung chuyển dữ liệu của các tầng.

Nguyễn Thị Mai

11

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin


2.3 PHP Framework
2.3.1 PHP Framewrk là gì?
PHP là 1 ngôn ngữ script rất phổ biến hiện nay bởi những lý do: linh hoạt, dễ sử
dụng, dễ học… nhưng đôi khi việc viết mã PHP, hay bất cứ ngôn ngữ (lập trình) nào
khác, có thể trở nên đơn điệu và lủng củng. Đó là lúc PHP framework có thể giúp ban.
PHP frameworks 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 1 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 bạn thúc đẩy
nhanh chóng quá trình phát triển ứng dụng, giúp bạn 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 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) 1 cách riêng biệt. Điều này cho phép bạn 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 1 project.
Ý tưởng chung đằng sau cách thức làm việc của 1 PHP framework được kể đến
là Model View Controller (MVC). MVC là 1 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 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 1 cách riêng lẻ. Trong
cụm từ MVC thì: Model (M) có thể hiểu là phần xử lý các thao tác về nghiệp vụ
(business logic), View được hiểu là phần xử lý lớp giao diện (presentation layer), và
Controller làm nhiệm vụ lọc các request đc gọi từ user, có chức năng như 1 route: điều
chỉnh, phân luồng các yêu cầu để gọi đúng Model & View thích hợp. Về cơ bản, MVC
chia nhỏ quá trình xử lý của 1 ứng dụng, vì thế nên bạn có thể làm việc trên từng thành
phần riêng lẻ, trong khi những thành phần khác sẽ không bị ảnh hưởng tới. Thực chất,
điều này giúp đỡ bạn lập trình PHP nhanh hơn và ít phức tạp hơn.

2.3.2 Tại sao chúng ta nên sử dụng PHP Framework?
Có rất nhiều lý do khác nhau để các lập trình viên sử dụng PHP framework,
nhưng 1 trong những lý do chính vẫn là khả năng giúp các lập trình viền tăng tốc quá

trình phát triển ứng dụng. Việc sử dụng lại các mã lệnh giống nhau trong nhiều project
sẽ giúp các bạn tiết kiệm được thời gian và công sức 1 cách đáng kể. Một framework
Nguyễn Thị Mai

12

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

sẽ cung cấp sẵn các module nền tảng cần thiết để xây dựng 1 project, vì thế, các lập
trình viên có thể tận dụng được thời gian để phát triển các ứng dụng thực tế, hơn là
mất thời gian để xây dựng lại nền tảng trên mỗi project
Sự ổn định là 1 lý do lớn đối với các lập trình viên đang sử dụng Framework.
Tính đơn giản là 1 điểm mạnh của PHP, đó là lý do tại sao lại có nhiều người thích sử
dụng nó, nhưng đồng thời đó cũng là điểm yếu của nó. PHP thì khá dễ học và sử dụng,
đặc biệt là đối với những người mới làm quen với lập trình, tuy nhiên, họ có thể
thường xuyên viết mã 1 cách không khoa học và thậm chí không hề nhận thức được
điều này, với PHP, trong nhiều trường hợp các ứng dụng vẫn sẽ làm việc được, nhưng
vô tình họ có thể tạo ra các lỗ hổng bảo mật lớn trong mã lệnh của mình, và bị hacker
khai thác.
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 để các bạn lựa chọn. Bạn thậm
chí còn có thể tự viết riêng cho mình 1 framework. Tuy nhiên, bạn nên cân nhắc kỹ
trước khi quyết định sử dụng 1 framework nào cho mình hay không, nên tự đặt câu hỏi
cho chính mình là: Nó có tiết kiệm được cho bạn thời gian và công sức hay không? Có
giúp ứng dụng bạn hoạt động tốt hơn không? Có cải thiện được sự ổn định cho ứng
dụng không? Hãy tìm ra câu trả lời cho chính mình để quyết định xem bạn có cần xài

framework hay chưa, và nên xài framework nào.

2.3.3 Khi nào nên sử dụng PHP Framework?
Đây thường là 1 câu hỏi chung của cả những người đã có kinh nghiệm và mới
bắt đầu trong lập trình PHP, và cũng không có câu trả lời trực tiếp nào cho câu hỏi
này. Với những bạn mới bắt đầu, 1 framework cũng có cung cấp những tính năng đơn
giản và ổn định, vì thế bạn cũng nên tập sử dụng framework bất cứ khi có thể. Nó sẽ
giúp bạn giảm bớt, hoặc loại bỏ các đoạn mã thiếu tính khoa học, và tăng tốc cho quá
trình xây dựng ứng dụng của bạn.
Mặt khác, đối với các lập trình viên PHP đã có kinh nghiệm, framework được
xem như 1 công cụ giúp đỡ các lập trình viên còn yếu, chưa biết làm thế nào để viết
mã 1 cách gọn gàng, tốt hơn và có khoa học. Cho dù điều này là đúng hay sai trong
các cuộc thảo luận, nhưng sự thật không thể phủ nhận là PHP framework là 1 công cụ
được sử dụng để tiết kiệm thời gian và giúp cho việc viết code chặt chẽ hơn.
Nguyễn Thị Mai

13

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Khi làm việc trên 1 project với thời gian giới hạn chặt chẽ, sử dụng PHP
framework là 1 lợi thế rất lớn, nó có thể giúp tăng tốc quá trình viết mã. Vì thế, nếu
bạn đang làm việc trong 1 tình trạng thời gian gấp rút, PHP framework sẽ rất có ích
cho bạn. Một trường hợp khác, bạn nên quan tâm đến PHP framework là khi bạn làm 1
project với số lượng mã phải viết quá lớn, nó sẽ giúp công việc của bạn trở nên bớt dài
dòng hơn.


2.3.4 Những điểm cần lưu ý khi lựa chọn một PHP Framework
Có rất nhiều loại PHP framework sẵn có hiện nay cho bạn lựa chọn, thậm chí
bạn có thể tự tạo ra 1 PHP framework cho riêng mình, tuy nhiên, điều này chỉ được
khuyến khích dành cho các chuyên gia PHP (PHP expert), những người đã có kiến
thức và hiểu biết vững vàng về framework. Khi bạn cần tìm một loại PHP framework
phù hợp nhất với nhu cầu của mình, đừng quên lưu ý về độ phổ biến của nó, ngoài ra
ứng dụng web của bạn được phát triển bởi bao nhiêu người cũng là 1 điều nên lưu ý.
Một PHP framework càng được phổ biến, tức là nó càng được nhiều người sử dụng và
phát triển. Mặt khác, nếu bạn muốn xây dựng ứng dụng cho website của riêng mình,
tốt nhất bạn nên chọn 1 PHP framework phù hợp và dễ sử dụng nhất đối với nhu cầu
của bạn - không quan trọng nó có được nhiều người sử dụng hay không.
Các yếu tố bạn nên lưu ý trước khi muốn tìm kiếm 1 PHP framework để sử
dụng bao gồm như sau: dễ sử dụng, phát triển nhanh và hiệu quả, phổ biến giữa các
developer, có các tính năng mạnh mẽ, có diễn đàn hỗ trợ. Hầu hết các framework đều
có các điểm yếu và thế mạnh khác nhau, ví dụ Zend Framework đã được phổ biến từ
version 1.3 và có đầy đủ các tính năng mạnh mẽ, cộng thêm 1 cộng đồng phát triển hỗ
trợ extension rộng lớn. Ngược lại, CakePHP lại là 1 loại PHP framework khác, mới ra
đời sau này, nhưng lại ít có cộng đồng phát triển hỗ trợ hơn Zend, nhưng nó cũng được
nhiều người lựa chọn vì tính thân thiện với người dùng và dễ sử dụng.
Như bạn có thể thấy, mỗi loại PHP framework đều có lợi thế riêng của nó.

2.3.5 PHP Framework phổ biến nhất hiện nay
Trong vài năm qua, PHP đã tiến triển thành 1 ngôn ngữ script được lựa chọn
bời hầu hết các nhà phát triển website, đã có 1 sự bùng nổ về các PHP framework, dẫn
Nguyễn Thị Mai

14

Lớp 49TH1



Đồ án tốt nghiệp
Khoa Công nghệ thông tin

đến các cuộc tranh luận lớn về đề tài: PHP framework nào là tốt nhất, bởi vì thực tế
không phải tất cả các framework đều được xây dựng trên khuôn khổ dành cho nhiều
người sử dụng. Dưới đây là 6 framework được đánh giá là tốt và phổ biến nhất hiện
nay:
Zend Framework

Hình 2.2: The Zend Framework
Zend Framework có 1 cộng đồng phát triển rộng lớn, và nó tập trung vào các
ứng dụng web theo phong cách 2.0. Vì được phổ biến rộng rãi, và có 1 cộng đồng
người dùng tích cưc, Zend được gọi là “Công ty PHP”. Zend là 1 trong những
framework phổ biến nhất hiện nay. Nó có các tính năng mạnh mẽ, 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 nó.

Nguyễn Thị Mai

15

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

CakePHP


Hình 2.3: CakePHP
CasePHP là 1 lựa chọn tuyệt với 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 1 nguyên tắc thiết kế với Ruby on Rails, là 1 framework
mạnh về khía cạnh rapid development , giúp lập trình viên đẩy nhanh quá trình phát
triển ứng dụng của họ. 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 1 trong những framework phổ biến nhất hiện nay.
Symfony

Hình 2.4: Symfony
Nguyễn Thị Mai

16

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

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à 1 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.
Codelgniter

Hình 2.5: Codelgniter
Codelgniter được biết đến như 1 framework dễ hiểu và dễ sử dụng, cho hiệu
suất cao. Không giống như Symfony, PHP framework này phục vụ mục đích lý tưởng
cho việc xây dưng các ứng dụng chia sẻ , lưu trữ. 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 1
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 1
người mới làm quen với framework.

Nguyễn Thị Mai

17

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Seagull

Hình 2.6: Seagull
Seagull cũng là 1 PHP framework tốt phục vụ cho việc xây dưng website và
các GUI. Nó là 1 framework cực kỳ dễ sử dụng cho cả những người mới mới làm quen
với lập trình PHP đến những chuyên gia trong lập trình PHP. Với những người mới
làm quen với lập trình PHP, Seagull cung cấp 1 thư viện các mẫu ứng dụng có thể
được tùy chỉnh để phù hợp với nhu cầu của bạn. Đối với các chuyên gia PHP, Seagull
cung cấp các tùy chọn máy chủ, bao gồm các phương pháp hay nhất, tiêu chuẩn, và
modular codebase – giúp các lập trình viên xây dựng các ứng dụng web một cách
nhanh chóng và dễ dàng. Seagull có một cộng đồng phát triển rộng lớn và nhiều tài
liệu hướng dẫn hỗ trợ.

Nguyễn Thị Mai

18


Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

Kohana

Hình 2.7: Kohana

Kohana là một framework PHP5 có sử dụng mô hình điều khiển MVC. Nó
nhằm mục đích để được an toàn, nhẹ, và dễ sử dụng.
Kohana là cấp phép theo giấy phép BSD, vì vậy bạn có thể sử dụng nó một
cách hợp pháp cho bất kỳ mã nguồn mở, thương mại hay dự án cá nhân
Nhìn chung PHP framework là 1 giải pháp tuyệt vời 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 1 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.
Ngoài các framework trên, còn một số PHP Framework phổ biến như: Prado,
Solar Framework, Fuse, Yii PHP Framework, Akelos PHP Framework.

Nguyễn Thị Mai

19

Lớp 49TH1



Đồ án tốt nghiệp
Khoa Công nghệ thông tin

2.4 Kohana Framework
2.4.1 Giới thiệu Kohana.
Với phiên bản hiện tại 3.1.3.1 (stable) thì gần như kohana đã đáp ứng đầy đủ
những features cần thiết để giúp người lập trình web(php) có thể dễ dàng xây dựng
một website theo mô hình MVC một cách nhanh chóng.
Cấu trúc của Kohana Framework đuợc thiết kế một cách khá linh động, giúp
người sử dụng vừa sử dụng các features có sẵn mà kohana cung cấp, đồng thời cho
phép mở rộng (extends) các features mà không làm ảnh hưởng đến hệ thống.
Một số tính năng nổi bật của Kohana:
Đây là PHP5 nên nó sử dụng toàn bộ sức mạnh của PHP hướng đối tượng.
Hệ thống tập tin: Nó dễ dàng cho phép bạn mở rộng và thêm vào các mô-đun,
thư viện, các mô hình và các file cấu hình.
Dễ dàng cập nhật các phiên bản kohana framework mới
Dễ dàng tích hợp các vendors bên ngoài như các php template engines (smary,
twig , rain tpl...), mail sender (swiff mail), tinymce ....
Tích hợp sẳn một số component: encryption, validation, data access (ORM),
code profiling.
Mục tiêu của Kohana:
 Bảo mật:
Xây dựng sẵn chế độ bảo vệ chống lại sự tấn công của XSS(Cross-Site
Scripting là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP,
PHP, CGI, JSP ...) những thẻ HTML hay những đoạn mã script nguy hiểm có
thể gây nguy hại cho những người sử dụng khác.)
Tất cả các dữ liệu được đưa vào database sử dụng các hàm như:
mysql_real_escape_string chống lại sql injection (một kiểu tấn công web qua
sql).

Tất cả các post, get, cooker được kiểm tra để ngăn chặn các hành vi nguy hiểm.
 Nhẹ: Giảm thiểu tải các file và tiết kiệm tài nguyên.
 Dễ sử dụng.
Nguyễn Thị Mai

20

Lớp 49TH1


Đồ án tốt nghiệp
Khoa Công nghệ thông tin

2.4.2 Cấu trúc Kohana.
Mô hình MVC:

Hình 2.8 Mô hình MVC trong Kohana Framework
Hệ thống tập tin:
Application Path: là APPPATH trong index.php. Giá trị mặc định là
Application .
Module Paths: Đây là thiết lập như là một mảng kết hợp sử dụng Kohana::
modules trong APPPATH / bootstrap.php. Mỗi của các giá trị của mảng sẽ
được tìm kiếm theo thứ tự mà các module được thêm vào.
System path: là SYSPATH trong index.php. Mặc định là system. Tất cả các các
chính hoặc file”core” và các lớp được định nghĩa ở đây.

Nguyễn Thị Mai

21


Lớp 49TH1


×