1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website xem tivi online

88 787 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 4,99 MB

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

Nội dung

Thông qua website này, các vấn đề thông tin nóng hổi,các chương trình văn hóa xã hội,thể thao,giải trí… trong nước cũng như thế giới sẽ đến với người xem một cách nhanh và chính xác nhất

Trang 1

LỜI MỞ ĐẦU

Ngày nay chúng ta đang sống trong thời đại của công nghệ với sự phát triển vượt bậc của công nghệ thông tin,đặc biệt là mạng lướt internet Sự có mặt của chúng đã tạo ra những bước ngoặt mang tính cách mạng quan trọng, làm thay đổi căn bản mọi lĩnh vực trong đời sống xã hội con người.Với cuộc sống và công việc luôn bận rộn thì Internet càng trở nên không thể thiếu đối với chúng ta Không cần phải mất nhiều thời gian và công sức để tìm kiếm một thông tin nào đó, với Internet mọi thứ dường như đã được trang bị đầy đủ, theo như số liệu điều tra, cứ mỗi giây lại có thêm vài chục trang Web mới bổ xung vào hàng triệu trang đã có

Để đáp ứng nhu cầu giải trí trong thời đại công nghệ số hiện nay thì công nghệ truyền hình cũng có những bước tiến rất dài,việc xây dựng lên các website xem truyền hình online là rất cần thiết Thông qua website này, các vấn đề thông tin nóng hổi,các chương trình văn hóa xã hội,thể thao,giải trí… trong nước cũng như thế giới sẽ đến với người xem một cách nhanh và chính xác nhất,tùy theo lựa chọn của mỗi người xem.Từ yêu cầu đó có nhiều website truyền hình online cũng đã được tạo ra và đưa vào sử dụng Nhưng với tốc độ phát triển đến chóng mặt của nền công nghệ thông tin ngoài những yêu cầu về chuyển tải thông tin một cách nhanh chóng và chính xác thì yêu cầu về tính thẩm mĩ của con người cũng được nâng lên rất nhiều Để bắt kịp với xu hướng phát triển việc xây dựng một website truyền hình online là rất cần thiết

Xuất phát từ nhu cầu trên, đồng thời được sự hướng dẫn tận tình của PGS.TS Nguyễn Đăng Tộ và thầy Phạm Trí Công ,em xin chọn đề tài cho đồ án tốt nghiệp

của mình là: “ xây dựng website xem tivi online”.

Hà Nội, ngày 06 tháng 07 năm 2011

Sinh viên thực hiện

Lê Quang Thanh

Trang 2

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:

Phó giáo sư - Tiến sĩ Nguyễn Đăng Tộ người thầy kính mến đã hết lòng giúp

đỡ, dạy bảo và tạo mọi điều kiện thuận lợi cho em trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp

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á 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à thầy còn truyền cho em ngọn lửa yêu nghề cũng như tinh thần học tập, làm việc, thái độ nghiên cứu chủ động,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

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

Trang 3

MỤC LỤC

CHƯƠNG 1 : GIỚI THIỆU 8

1.1 ĐẶT VẤN ĐỀ 8

1.2 MỤC TIÊU ĐỀ TÀI 8

1.3 NỘI DUNG ĐỀ TÀI .9

1.4 HƯỚNG GIẢI QUYẾT 9

1.5 LỰA CHỌN CÔNG NGHỆ VÀ MÔI TRƯỜNG PHÁT TRIỂN 10

2.1 WAMP 12

2.1.1 Các đặc điểm nổi bật của Wamp 12

2.2 Cơ sở dữ liệu My SQL 13

2.2.1 Giới thiệu chung về MYSQL 13

2.2.2 Các đối tượng của MYSQL 13

2.3 PHP 16

2.3.1 Giới thiệu chung về PHP 16

2.3.2 Lý do chọn PHP 17

2.4 FRAMEWORK MVC 18

2.4.1 Mô hình MVC 18

2.4.2 Ưu điểm và nhược điểm của mô hình MVC 19

2.4.3 Khái quát về PHP Framework 20

2.4.4 khái quát kohana framework 28

Hình 2.7:Mô hình MVC cho kohana framework MVC 28

2.4.5 Khái quát Simple framework MVC 31

CHƯƠNG 3 :KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU HỆ THỐNG 35

3.1 KHẢO SÁT YÊU CẦU HỆ THỐNG 35

3.1.1 Xác định các yêu cầu của hệ thống 35

3.1.2 Mô tả chi tiết chức năng với từng đối tượng sử dụng hệ thống 36

3.2 THIẾT KẾ HỆ THỐNG 38

3.2.1 Mô hình phân cấp chức năng 38

3.2.2 Mô hình UseCase 41

3.2.3 Kiến trúc hệ thống 43

3.2.4 Chức năng đăng nhập 47

3.2.5 Mô hình Sequence Diagram cho các chức năng chính của hệ thống 48

3.2.6 Mô hình Class Diagram 60

3.3 THIẾT KẾ CƠ SƠ DỮ LIỆU 68

3.3.1 Các thực thể trong hệ thống 68

69 Hình 3.48: Hình ảnh thực thể Category (kênh) trong hệ thống 69

3.3.2 Mô hình quan hệ giữa các thực thể của hệ thống 70

3.3.4 Các bảng của cơ sở dữ liệu 72

CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 73

4.1 GIAO DIỆN NGƯỜI DÙNG 73

Hình 4.6: Giao diện trang chủ quản lý nội dung chương trình ti vi 80

Hình 4.7: Giao diện trang quản lý nội dung kênh ti vi 81

Hình 4.8: Giao diện trang quản lý User 81

Hình 4.9: Giao diện trang quản lý liên kết trang 82

Trang 4

Hình 4.10: Giao diện trang thêm chương trình tivi 83

CHƯƠNG 5 : KẾT LUẬN 86

5.1 ĐÁNH GIÁ 86

5.2 HƯỚNG PHÁT TRIỂN 87

TÀI LIỆU THAM KHẢO 88

Trang 5

MỤC LỤC CÁC HÌNH ẢNH

Hình 2.1: Mô hình MVC 18

Hình 2.2: Hình ảnh của Zend Framework 24

Hình 2.3: Hình ảnh của CakePHP 25

Hình 2.4: Hình ảnh Symfony 26

Hình 2.5 : Hình ảnh Codelgniter 26

Hình 2.6 : Hình ảnh Seagull 27

31 Hình 2.8 : Mô hình MVC cho Simple framework MVC 31

39 Hình 3.1: Mô hình phân cấp chức năng của Admin 39

40 Hình 3.2: Mô hình phân cấp chức năng của người duyệt web 40

Hình 3.3: Sơ đồ UseCase của hệ thống 41

Hình 3.4: Sơ đồ UseCase của Admin 42

Hình 3.5: Sơ đồ UseCase của User 42

43 Hình 3.6: Kiến trúc của hệ thống Framework MVC 43

Hình 3.7: Mô hình Sequence Diagram của kiến trúc hệ thống Framework MVC 46

Hình 3.8: Mô hình Class Diagram của kiến trúc hệ thống Framework MVC 46 Hình 3.9: Mô hình Sequence Diagram của chức năng đăng nhập 47

Hình 3.10: Mô hình Class Diagram của chức năng đăng nhập 48

Hình 3.11: Mô hình Sequence Diagram của trang chủ phía người dùng 48

Hình 3.12: Mô hình Sequence Diagram của chức năng tìm kiếm chương trình tivi 49 Hình 3.13: Mô hình Sequence Diagram của chức năng hiển thị các chương trình mới nhất lên trang chủ 50

Hình 3.14: Mô hình Sequence Diagram của chức năng hiển thị các chương trình mới nhất theo từng kênh lên trang chủ 51

Hình 3.15: Mô hình Sequence Diagram của chức năng xem chi tiết chương trình tivi 52

Hình 3.16: Mô hình Sequence Diagram của chức năng hiển thị danh sách các chương trình theo từng kênh 52

Hình 3.17: Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách chương trình ti vi 53 Hình 3.18: Mô hình Sequence Diagram của chức năng thêm mới chương trình

ti vi 54

Hình 3.19: Mô hình Sequence Diagram của chức năng sửa chương trình ti vi 54

Hình 3.20: Mô hình Sequence Diagram của chức năng xóa chương trình tivi 55

Trang 6

Hình 3.21: Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị

danh sách kênh tivi 55

Hình 3.22: Mô hình Sequence Diagram của chức năng thêm mới kênh tivi 56

Hình 3.23: Mô hình Sequence Diagram của chức năng sửa kênh ti vi 57

Hình 3.24: Mô hình Sequence Diagram của chức năng xóa kênh tivi 58

Hình 3.25: Mô hình Sequence Diagram của chức năng tìm kiếm và hiển thị danh sách liên kết website và quảng cáo 58

Hình 3.26: Mô hình Sequence Diagram của chức năng thêm mới liên kết website và quảng cáo 59

Hình 3.27: Mô hình Sequence Diagram của chức năng chỉnh sửa liên kết website và quảng cáo 59

Hình 3.28: Mô hình Sequence Diagram của chức năng xóa liên kết website và quảng cáo 60

Hình 3.29: Mô hình Class Diagram của trang chủ 60

Hình 3.30: Mô hình Class Diagram của chức năng tìm kiếm và hiển thị danh sách chương trình ti vi 61

Hình 3.31: Mô hình Class Diagram của chức năng hiển thị chương trình mới nhất 61

Hình 3.32: Mô hình Class Diagram của chức năng hiển thị các chương trình mới nhất theo từng kênh lên trang chủ 62

Hình 3.33: Mô hình Class Diagram của chức năng xem chi tiết chương trình ti vi 62 Hình 3.34: Mô hình Class Diagram của chức năng xem danh sách chương trình theo từng kênh 63

Hình 3.35: Mô hình Class Diagram của chức năng tìm kiếm và hiển thị chương trình tivi 63

Hình 3.36: Mô hình Class Diagram của chức năng thêm mới chương trình tivi 64 Hình 3.37: Mô hình Class Diagram của chức năng chỉnh sửa tin tức 64

Hình 3.38: Mô hình Class Diagram của chức năng xóa chương trình tivi 65

Hình 3.39: Mô hình Class Diagram của chức năng tìm kiếm kênh tivi 65

Hình 3.40: Mô hình Class Diagram của chức năng thêm mới kênh tivi 65

Hình 3.41: Mô hình Class Diagram của chức năng chỉnh sửa kênh tivi 66

Hình 3.42: Mô hình Class Diagram của chức năng xóa kênh tivi 66

Hình 3.43: Mô hình Class Diagram của chức năng tìm kiếm liên kết website và quảng cáo 66

Hình 3.44: Mô hình Class Diagram của chức năng thêm mới liên kết website và quảng cáo 67

Hình 3.45: Mô hình Class Diagram của chức năng chỉnh sửa liên kết website và quảng cáo 67

Hình 3.46: Mô hình Class Diagram của chức năng xóa liên kết website và quảng cáo 67 68

Trang 7

Hình 3.47: Hình ảnh thực thể Content (chương trình trong hệ thống) 68

69 Hình 3.49: Hình ảnh thực thể BannerLink (liên kết website) trong hệ thống 69

Hình 3.50: Hình ảnh thực thể Users (người quản lý) trong hệ thống 70

70 Hình 3.51: Mô hình quan hệ giữa các thực thể của hệ thống 70

3.3.3 Mô hình quan hệ 71

Hình 3.52: Mô hình quan hệ của hệ thống 71

Hình 4.1: Hình ảnh giao diện trang chủ 75

Hình 4.2: Hình ảnh giao diện của chức năng xem danh sách các chương trình theo từng kênh tivi 76

Hình 4.3: Hình ảnh giao diện của chức năng xem chi tiết chương trình tivi 78

Hình 4.4: Hình ảnh giao diện của chức năng đăng nhập hệ thống 79

Hình 4.5: Hình ảnh giao diện trang chủ quản lý hệ thống 79

Hình 4.11: Hình ảnh giao diện của chức năng sửa chương trình tivi 84

Hình 4.12: Hình ảnh giao diện của chức năng xóa chương trình tivi 85

Trang 8

CHƯƠNG 1 : GIỚI THIỆU

1.1 ĐẶT VẤN ĐỀ

Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt chinh phục hết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nền tảng chính cho sự truyền tải, trao đổi thông tin trên toàn cầu

Để website xem tivi online luôn mới mẻ, thu hút sự quan tâm của người xem đến với website Ngoài thiết kế các chức năng nhằm hỗ trợ cho người dùng một cách tốt nhất em còn thiết kế HCI thân thiện với người dùng

Nhu cầu giải trí trong thời đại công nghệ số ngày càng cao.Thông tin phải nhanh nhạy,phong phú với hình ảnh đẹp,sắc nét,âm thanh chất lượng cao.Do đó, thiết kế website để nhằm thu hút sự quan tâm của người dùng, hơn nữa cũng để tạo thêm tính chuyên nghiệp của website.Chính vì thế với những kiến thức thu được khi ngồi trên ghế nhà trường cùng với sự hướng dẫn của các thầy em xin chọn đề tài

“xây dựng website xem tivi online” Website được xây dựng trên hai Framework

MVC, đó là kohana Framework và simple Framework hai Framework này được

viết bằng PHP, sử dụng hệ quản trị cơ sở dữ liệu MYSQL

1.2 MỤC TIÊU ĐỀ TÀI

Đề tài “xây dựng website xem tivi online” với mục tiêu tìm hiểu về web

Framework ,mô hình MVC và áp dụng nó để dựng website xem tivi online bảo đảm tính tiện dụng đối với cả người sử dụng và người quản trị Nội dung của website được trình bày rõ ràng, mạch lạc,dễ sử dụng và thiết kế HCI thân thiện với người dùng

Website được thiết kế và lập trình bằng ngôn ngữ PHP trên cơ sở dữ liệu MySQL Nội dung của website bao gồm các chức năng như:

Trang 9

• Tin tức tivi.

• Các kênh tivi

1.3 NỘI DUNG ĐỀ TÀI

Nội dung chính là xử lý các chức năng về quản lý và tìm kiếm chương trình ti vi:

• Quản lý các kênh tivi

• Quản lý các liên kết website và quảng cáo

• Quản lý User

• Cập nhập chương trình một cách thường xuyên

• Chỉnh sửa, thay đổi khi chương trình tivi không còn phù hợp

• Tìm kiếm chương trình ti vi

• Xem tivi theo từng kênh

Website có các chức năng được phân cấp rõ ràng, hỗ trợ người dùng cập nhập chương trình tivi chính xác và nhanh chóng,đơn giản

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ệ…

• 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

Trang 10

Hệ thống được xây dựng trên Framework MVC được viết bằng ngôn ngữ PHP và

hệ quản trị cơ sở dữ liệu MYSQL 5.1.36

1.5 LỰA CHỌN CÔNG NGHỆ VÀ MÔI TRƯỜNG PHÁT TRIỂN

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

• 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

Trang 11

• 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

• 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

• 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.36

• 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 Wamp server để chạy chương trình

Trang 12

CHƯƠNG 2 : TÌM HIỂU WAMP,MYSQL,PHP VÀ FRAMEWORK MVC 2.1 WAMP

2.1.1 Các đặc điểm nổi bật của Wamp

Wamp: Một gói phần mềm Web Server tất cả trong một (All-in-One) gồm: Apache, MySQL, PHP chạy trên nền Windows Chồng phần mềm Wamp chu cấp các nhà phát triển với bốn phần tử then chốt của một máy chủ web: một hệ điều hành, kho dữ liệu, máy chủ đãi web và phần mềm ra văn mã cho mạng web Sự hợp lại của việc sử dụng những chương trình này gọi là một chồng trên máy chủ (server stack) Trong chồng này, Microsoft Windows hệ điều hành (operating system), Apache là phần mềm máy chủ web, MySQL lo liệu các thành phần kho dữ liệu, trong lúc PHP, Python, hoặc PERL tượng trưng các ngôn ngữ chủ động ra văn mã

Nó cho phép bạn tạo các ứng dụng Web với Apache, PHP, và cơ sở dữ liệu MySQL Nó cũng đi kèm với PHPMyAdmin và SQLiteManager để dễ dàng quản lý cơ

sở dữ liệu của bạn WampServer cài đặt tự động (cài đặt), và cách sử dụng của nó là rất trực quan Bạn sẽ có thể điều chỉnh ngay cả máy chủ của bạn mà không cần chạm vào các tập tin cài đặt WampServer là chỉ đóng gói giải pháp mà sẽ cho phép bạn sao chép sản xuất máy chủ của bạn Khi WampServer được cài đặt, bạn có khả năng thêm bao nhiêu Apache, MySQL, và PHP bản phát hành như bạn muốn WampServer cũng có một trayicon để quản lý các máy chủ của bạn và các thiết lập của nó

Các đặc điểm nổi bật của Wamp :

• Có thể cài đặt WAMP dễ dàng

• WAMP được cập nhật đều đặn

• Cho phép lựa chọn các phiên bản PHP, MySQL khác nhau

• Rất tốt cho việc tạo máy chủ Web để chạy thử, thiết kế Website bằng PHP

• Hỗ trợ tốt cho Joomla 1.5, Joomla 1.0,magento 1.5

• Hỗ trợ phiên bản PHP5 mới nhất

• Tương thích Windows XP / Windows Vista / Windows 7

• Hoàn toàn miễn phí

Trang 13

2.2 Cơ sở dữ liệu My SQL

2.2.1 Giới thiệu chung về MYSQL

MySQL là hệ quản trị cơ sở dữ liệu mã 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 rất thích hợp cho các ứng dụng có truy cập CSDL từ trên internet MySQL được sử dụng miễn phí hoàn toàn 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.2 Các đối tượng của MYSQL

• Bảng - Table :

Trong cơ sở dữ liệu, bảng (Table) là thành phần chính của chúng Do đó bảng là đối tượng lưu trữ dữ liệu thực, khi cần giao tiếp với cơ sở dữ liệu khác, bảng là đối tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào, chúng được coi như một miền dữ liệu

Bảng dùng để lưu trữ tất cả dữ liệu và được tổ chức thành nhiều hàng và nhiều cột Mỗi cột trong bảng có thể lưu một loại thông tin nhất định gọi là kiểu

dữ liệu, dữ liệu nhập vào có thể chấp nhận hoặc từ chối tùy thuộc vào nguyên tắc ràng buộc dữ liệu hoặc dữ liệu tương thích do hệ thống hay người dùng định nghĩa

Khi định nghĩa cơ sở dữ liệu ta cần quan tâm đến các thông số sau:

• Key: Trường đó có khóa hay không

Trang 14

• ID: Trường có thuộc tính Identity hay không.

• Column Name: Tên của trường

• Data type: Loại dữ liệu cho trường tương ứng

• Size: Kích thước trường dữ liệu

• Allow null: Cho phép giá trị rỗng lưu trong trường hay không

• Default: Giá trị mặc nhiên cho trường

• Identity: Nếu bạn cần sử dụng một trường có giá trị tự động như Autonumber trong access, trường này not null và Identity: yes (no)

• Identity seed: Nếu trường (cột) này là identity, cần số bắt đầu số 1 hoặc 2 …

• Chỉ mục - Indexs:

Index hay còn gọi là chỉ mục, đối tượng này chỉ tồn tại trong bảng hay khung nhìn (view) Chỉ mục này có ảnh hưởng tới tốc độ truy cập số liệu, nhất là khi cần tìm kiếm thông tin trên bảng, chỉ mục giúp tăng tốc độ cho việc tìm kiếm

• Clustered: Ứng với mỗi chỉ mục này một bảng chỉ có một chỉ mục, và

số liệu được sắp xếp theo trang

• Non-clustered: Ứng với chỉ mục này một bảng có thể có nhiều chỉ mục và dữ liệu được sắp xếp theo trường dữ liệu mà bạn chỏ tới

• Bẫy lỗi - Triggers:

Nếu đối tượng chỉ tồn tại trong bảng, cụ thể là một đoạn mã, và tự động thực thi khi có một hành động nào đó xảy ra đối với dữ liệu trong bảng như: Insert, Update, Delete

Trigger có thể sử dụng để bẫy rất nhiều tình huống như copy dữ liệu, xóa dữ liệu, cập nhập dữ liệu, kiểm tra dữ liệu theo tiêu chuẩn nào đó

• Ràng buộc - Constaints:

Là một đối tượng, nó là một phần nhỏ trong bảng, chúng ràng buộc dữ liệu trong bảng hoặc các bảng khác phải tuân theo một quy tắc nào đó

• Khung nhìn (View):

Trang 15

Là khung nhìn hay một bảng ảo của bảng Cũng giống như bảng nhưng View không thể chứa dữ liệu, bản thân View có thể tạo thêm trường mới dựa vào những phép toán, biểu thức của MY SQL Bên cạnh đó View có thể kết nối nhiều bảng lại với nhau theo quan hệ nhất định cùng với những tiêu chuẩn, nhằm tạo ra một bảng theo nhu cầu của người dùng.

View cho phép bạn chia ngang hay dọc thông tin từ một hay nhiều bảng trong cơ sở dữ liệu, sử dụng View như là một đối tượng trong MY SQL, khi cần thiết sử dụng đến View, kết quả View trả về bằng việc truy vấn dữ liệu theo yêu cầu người dùng

Mục đích sử dụng View:

• Hạn chế tính phức tạp của dữ liệu đến người dùng

• Kết nối dữ liệu từ nhiều bảng lại với nhau

• Sử dụng tài nguyên Server để thực hiện việc truy vấn

• Tạo ra một bảng ảo có dữ liệu như yêu cầu

• Kết hợp một số hàm và phương thức tạo ra các cột mới

• Thủ tục nội (stored Procedure):

Thủ tục nội hay còn gọi là Spocs, tiếp tục phát triển như một phần lập trình SQL trên cơ sở dữ liệu Store Procedure cho phép khai báo biến, nhận tham số cúng như thực thi các phát biểu có điều kiện Store Procedure có các ưu điểm sau:

• Kế thừa tất cả các phát triển của SQL, và là một đối tượng xử lý số liệu hiệu quả nhất khi dùng MY SQL

• Tiết kiệm thời gian thực thi trên dữ liệu

• Có thể gọi những Stored Procedure theo cách gọi của thủ tục hay hàm trong các ngôn ngữ lập trình truyền thống, đồng thời sử dụng lại khi

có yêu cầu

Trang 16

2.3 PHP

2.3.1 Giới thiệu chung về 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

Trang 17

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.3.2 Lý do 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 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

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

Trang 18

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ạm dịch là phần “Mô hình” ): 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

Model

controller

controller

User

View2.Request

1.Request

4.Request

3.Response

5.Response

Trang 19

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ạm dịch là phần “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

• Controller (tạm dịch là phần “Điều khiển”): Controller là tầng trung gian giữa Model và View Controller được giao nhiệm vụ nhận các yêu cầu từ phía máy khách Một yêu cầu được nhận từ máy khách được thực hiện bởi một chức năng logic thích hợp từ thành phần Model và sau đó sinh ra các kết quả cho người dùng và được thành phần View hiển thị ActionServlet, Action, ActionForm và strutsconfig.xml là các phần của Controller

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.4.2 Ưu điểm và nhược điểm của mô hình MVC

Ưu điểm

Mô hình MVC giúp cho ứng dụng dễ bảo trì, module hóa, và được xây dựng nhanh chóng MVC tách các tác vụ của ứng dụng thành các phần riêng lẽ model, view, controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn Dễ dàng thêm các tính năng mới, và các tính năng cũ có thể dễ dàng thay đổi MVC cho phép các nhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau, kể cả trong bước phát triển prototype MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnh hưởng đến các phần khác

Trang 20

Sự dễ dàng trong viết code test là một thuận lợi khi áp dụng MVC Test những component của chương trình trở nên rất khó khăn khi chúng phụ thuộc chặt chẽ vào nhau, đặc biệt đối với những thành phần giao diện Để test giao diện của một phần mềm, tất nhiên bạn phải qua các bước cài đặt và đôi khi điều đó trở nên rất mất thời gian khi chỉ để test một chức năng đơn giản Tệ hơn khi xảy ra lỗi, chúng ta sẽ rất khó để phát hiện lỗi ở phần nào Đó là lý do tại sao chia nhỏ các thành phần chức năng là một trong những chiều hướng chính của các thiết kế quan trọng MVC chia nhỏ các vấn đề như lưu trữ, hiển thị và cập nhật dữ liệu thành 3 nhóm components, những component này có thể được test độc lập với nhau.

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

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

Trang 21

đẩ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.4.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 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

Trang 22

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.4.3.3 Khi nào thì 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

Trang 23

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.4.3.4 Những điểm cần lưu ý khi lựa chọn 1 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ó

Trang 24

2.4.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 đế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à 5 framework được đánh giá là tốt và phổ biến nhất hiện nay:

The Zend Framework

Hình 2.2: Hình ảnh của 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

Trang 25

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ó

CakePHP

Hình 2.3: Hình ảnh của CakePHP

CakePHP 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.

Trang 26

Hình 2.4: Hình ảnh Symfony

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 : Hình ảnh Codelgniter

Trang 27

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.

Seagull

Hình 2.6 : Hình ảnh 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

Trang 28

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ợ.

2.4.4 khái quát kohana framework

2.4.4.1 Giới thiệu kohana Framework MVC

Mô hình MVC cho Kohana framework MVC

Hình 2.7:Mô hình MVC cho kohana framework MVC

Kohana framework MVC là một mã nguồn mở,được xây dựng trên mô hình MVC được viết trên PHP5 bởi một nhóm phát triển tình nguyện nhằm mục đích nhanh chóng,an toàn,nhỏ gọn.Kohana được 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 hoặc

dự án cá nhân.Gần như kohana đã đáp ứng đầy đủ những tính năng 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

DB Server

DB Server

DB layer

Model Logic

view

view

Controller Request

HTML

Trang 29

một cách nhanh chóng.Kiến trúc của Kohana Framework được thiết kế một cách khá link động giúp người sử dụng các tính năng có sẵn mà kohana cung cấp,đồng thời cho phép mở rộng các tính năng mà không làm ảnh hưởng đến hệ thống.

Một số đặc điểm nổi bật của Kohana:

• Dễ dàng mở rộng hệ thống khi cần thiết

• 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ố các componnent:encryption,validation,data acceess(ORM),code profiling

Một số đặc điểm cơ bản của Kohana Framework trong folder tivionline mà ta cần

chú ý đến:

• File htaccess để thực hiện rewrite URL, thay đổi request về file index.php

sẽ có tham số route trong query string sẽ chuyển hướng tất cả các yêu đến thư mục css, images, js, upload…

• File Index.php đóng vai trò là bootstrapper cho ứng dụng, nó sẽ nhận yêu cầu

và phân tích nội dung request để chuyển tới file php khác thực hiện xử lý thích hợp Nó là nơi để cấu hình hoàn toàn trang web

Trong thu mục application có các thư mục(classes,view,config)

Trong thư mục class chứa 2 thư mục controller và model

Trong thư mục controller chứa các file thực hiện chức năng điều hướng và

xử lý(chức năng controller trong MVC)

Trong thư mục moder chứa các file(thực hiện chức năng model trong MVC),ở

đây là các file giúp bạn thao tác với cơ sở dữ liệu theo yêu cầu từ controller.đặc biệt

trong đây còn có thư mục core chứa file abstract.php file này như là thư viện các

hàm xử lý tương tác trực tiếp với database

Trong thư mục view có các thư mục con (blocks,pages,templates) thực hiện

chức năng view trong MVC

Trang 30

Thư mục pages chứa 3 thành phần hiển thị cơ bản của 1 trang web đó là

header,content,footer

Thư mục block chứa các block hiển thị lên các trang

Thư mục templates chứa file default.php mặc định các đường dẫn đến các

file css,js,java

Trong thư mục config chứa file database.php dùng để kết nối với cơ sở dữ

liệu, kết nối các thư mục …

2.4.4.2 Lợi ích khi sử dụng kohana framework MVC

• Bạn cần sử dụng thư viện và các công cụ cụ thể

Mở rộng thành phần hiện có và thêm các thư viện mới trong kohana là rất dễ dàng

• Bạn dùng nó để viết các ứng dụng thương mại

Sử dụng giấy phép BDS,vì vậy bạn có thể sử dụng và sửa đổi nó cho mục đích thương mại

• Bạn muốn có một framework nhanh

Điểm chuẩn của một framework rất khó và hiếm khi phản ánh thế giới thực,nhưng kohana là rất hiệu quả và cẩn thận tối ưu hóa cho việc sử dụng thế giới thực

• Bạn muốn gỡ lỗi và các công cụ hồ sơ tốt

Công cụ đơn giản và hiệu quả giúp xác định và giải quyết vấn đề hiệu suất nhanh chóng

• Bạn muốn biết những gì mà framework đang làm và kiểm soát nó

Nhận xét rất tốt mã và một cấu trúc định tuyến đơn giản làm cho nó dễ dàng để hiểu những gì đang xảy ra

• Bạn thích làm việc với các đối tượng và các lớp,hơn là các tập tin và chức năng

Đây là một framework cực kì chặt chẽ.Tất cả được xây dựng bằng cách

sử dụng PHP 5.2 nghiêm ngặt các lớp và các đối tượng

Trang 31

• Bạn thích viết code của riêng bạn thay vì nó tạo sẵn cho bạn.

Không có máy phát sinh mã và các file cấu hình bất tận,để thiết lập code

là điều nhanh chóng và dễ dàng khi bạn sử dụng kohaka

• Bạn cần sự hỗ trợ của các chuyên gia

Một cộng đồng rất tích cực(diễn đàn và các kênh IRC) có nghĩa là phần lớn các câu hỏi thắc mắc được trả lời nhanh chóng

2.4.5 Khái quát Simple framework MVC

2.4.5.1 Giới thiệu Simple Framework MVC

Mô hình MVC cho Simple framework MVC

Hình 2.8 : Mô hình MVC cho Simple framework MVC

DB Server

DB Server

DB layer

Model Logic

view

view

Controller Request

HTML

Trang 32

Simple framework MVC là một PHP framework theo cấu trúc MVC được viết trên PHP4 và hỗ trợ cả PHP4 và PHP5 Nó là một tập hợp các thư viện viết sẵn trên PHP giúp chúng ta phát triển web bằng PHP nhanh hơn là cách viết lắp ghép thông thường, các thư viện này giúp chúng ta thực hiện các tác vụ thông thường của một ứng dụng web như kết nối và thực hiện các công việc liên quan đến cơ sở dữ liệu, upload file, xử lý hình ảnh, phân trang, cookie, session, bảo mật … Đồng thời các thư viện này cũng giúp chúng ta tổ chức code tốt hơn với mô hình MVC.

Cơ bản về simple framework MVC, trong folder cse_wru application trong thư mục system ta chú ý đến :

• File htaccess để thực hiện rewrite URL, thay đổi request về file index.php

sẽ có tham số route trong query string sẽ chuyển hướng tất cả các yêu đến thư mục css, images, js, upload…

• File Index.php đóng vai trò là bootstrapper cho ứng dụng, nó sẽ nhận yêu cầu

và phân tích nội dung request để chuyển tới file php khác thực hiện xử lý thích hợp Nó là nơi để cấu hình hoàn toàn trang web

• File Defile.php dùng để kết nối với cơ sở dữ liệu, kết nối các thư mục …

Thư mục core là thư mục chứa các file cơ bản và tổng quát nhất :

− Ta chú ý đến file ConfigDb.php dùng để cấu hình thông tin liên quan đến cơ sở dữ liệu.Tại đây sẽ khai báo tất cả các bảng và các field ,khóa chính… trong cơ sở dữ liệu

− File Config.php để điều phối hay chỉ đường, nó dùng để cấu hình thông tin tên site.url

− Ngoài ra trong thư mục này còn chứa các file như BaseLogic.php, BaseBlock.php, BaseDb.php… các file này gồm những hàm được viết tổng quát nhất.File BaseDb.php dùng để viết các hàm insert, update, delete và select tác động trực tiếp vào Database

• Trong thư mục Action Nơi đặt các file thực hiện chức năng controller trong MVC ( điều hướng và xử lý yêu cầu )

Trang 33

• Trong thư mục logic chứa các file thực hiện chức năng model trong MVC,

cụ thể ở đây có thể là các file giúp bạn thao tác với cơ sở dữ liệu theo yêu cầu từ controller

• Trong thư mục db sẽ truy xuất dữ liệu vào trong databse

• Trong thư mục views chứa các file thực hiện tác vụ view trong mô hình MVC, cứ tạm xem nó là nơi chứa file giao diện cho ứng dụng Tại file này

nó sẽ hiển thị dữ liệu ra giao diện người dùng

• Ngoài ra còn có các thư mục khác như image, upload ,css, js…

Tóm lại, trong MVC controler là phần kết nối điều khiển truy suất giữu view và model View để hiển thị định dạng ra browser còn Model đóng vai trò là người quản

lý dữ liệu(truy suất hay cập nhật dữ liệu phải qua model)

2.4.5.2 Lợi ích khi sử dụng simple framework MVC

• Việc phát triển sử dụng simple frameworks MVC cho nhiều lý do khác nhau, nhưng một số lý do cơ bản nhất và dễ hiểu nhất là tiết kiệm thời gian phát triển ứng dụng web PHP Dùng lại mã qua các dự án tương tự sẽ tiết kiệm được rất nhiều các nhà phát triển một số lượng đáng kể về thời gian và nỗ lực trong dự án.simple Frameworks MVC cung cấp mô-đun trước được xây dựng để thực hiện nhiệm vụ tẻ nhạt mã hóa, do đó, các nhà phát triển có thể dành nhiều thời gian của họ vào việc phát triển các ứng dụng thực tế hơn là tái xây dựng nền tảng với nhau và mỗi dự án

• Khi làm việc trên một dự án có giới hạn về thời gian, sử dụng simple frameworks MVC có vẻ như là một giải pháp tối ưu nhất nhằm đẩy nhanh quá trình viết mã Vì vậy, nếu bạn đang trong thời gian khủng hoảng và cấp bách nhất của dự án đòi hỏi gấp rút về thời gian, PHP frameworks lợi thế sẵn

có bạn có thể sử dụng bất kỳ lúc nào bạn muốn Một ví dụ khác, nên xem xét

là khi bạn làm việc trên một dự án kiếm khá nhiều tiền… và giúp công việc trôi chảy kinh doanh phát đạt hơn

• Nói tóm lại, sự sẵn có của simple frameworks MVC một điều tuyệt vời Bạn thậm chí có thể tạo riêng cho bạn, mặc dù các nhà phát triển nhiều bầu chọn

Trang 34

từ bất frameworks nổi tiếng nhất do sự phổ biến của chúng, hỗ trợ rộng lớn,

và các diễn đàn/cộng đồng cho phép bạn tương tác với các nhà phát triển khác, những người sử dụng cùng một frameworks Lưu ý, bạn nên luôn luôn kiểm tra dự án đầu tiên của bạn để quyết định xem bạn có nên sử dụng một frameworks hay không Một số câu hỏi bạn nên hỏi bản thân bạn là: nó sẽ giúp bạn tiết kiệm, và bất kỳ ai khác có thể sử dụng nó, thời gian và công sức? Ứng dụng sẽ hoạt động tốt hơn? Nó sẽ cải thiện sự ổn định? Nếu bạn có thể có câu trả lời bất kỳ câu hỏi nào, một simple frameworks MVC có thể là câu trả lời đúng cho rằng dự án cụ thể

Trang 35

CHƯƠNG 3 :KHẢO SÁT VÀ PHÂN TÍCH YÊU CẦU HỆ THỐNG

3.1 KHẢO SÁT YÊU CẦU HỆ THỐNG

3.1.1 Xác định các yêu cầu của hệ thống

3.1.1.1 Đối với người duyệt web

Website đảm bảo các yêu cầu sau:

• Website cung cấp giao diện đồ họa trực quan cho người duyệt, có thể dễ dàng tra cứu, tìm kiếm chương trình tivi một cách nhanh chóng

• Website hiển thị các tin theo từng kênh

• Cung cấp các chức năng tìm kiếm

3.1.1.2 Đối với người quản trị Admin

Để có thể thực hiện những tác vụ của người quản trị, hệ thống sẽ yêu cầu người quản lý đăng nhập vào hệ thống Sau khi đăng nhập website cung cấp các chức năng:

• Kết nối cơ sở dữ liệu

• Quản lý dữ liệu: tiến hành cập nhập, thêm mới hay xóa bỏ các dữ liệu không phù hợp

• Quản lý chương trình tivi: tiến hành cập nhâp,thêm mới,xóa bỏ các dữ liệu chương trình tivi không phù hợp

• Quản lý các kênh: có thể cập nhâp, thêm mới, xóa bỏ các kênh không phù hợp

• Quản lý các liên kết website, quảng cáo có thể cập nhập, thêm mới, sửa, xóa

• Quản lý User: có thể cập nhập,thêm,xóa,phân quyền cho người sử dụng

• Chức năng tìm kiếm cho người quản trị

• Phân quyền sử dụng website

• Thay đổi mật khẩu khi cần thiết để đảm bảo tính bảo mật và an toàn cho Website

Trang 36

3.1.2 Mô tả chi tiết chức năng với từng đối tượng sử dụng hệ thống

3.1.2.1 Đối với người duyệt web

Xem chương trình tivi

Mục đích Chức năng cho phép người xem có thể xem chương trình tivi

Dữ liệu vào Lựa chọn kênh ti vi muốn xem

Xử lý Lấy danh sách chương trình của từng kênh từ Database

Dữ liệu ra Chạy chương trình được yêu cầu

Tìm kiếm chương trình tivi

Mục đích Cho phép người xem tìm kiếm các chương trình

Dữ liệu vào +Nhập từ khóa muốn tìm.

+Tìm kiếm với tất cả các từ nhập vào

Xử lý Truy vấn trong cơ sở dữ liệu, hiện kết quả

Dữ liệu ra Hiển thị các thông tin chi tiết

3.1.2.2 Đối với người quản trị web

Đăng nhập

Mục đích Cho Phân quyền để kiểm soát hệ thống một cách chặt chẽ, tránh

tình trạng hệ thống bị thay đổi và phá hủy

Dữ liệu vào Tên đăng nhập, mật khẩu

Xử lý So sánh với bảng user trong cơ sở dữ liệu

Dữ liệu ra Chuyển đến trang của đối tượng nếu đúng, báo lỗi nếu sai tên hay

mật khẩu

Đăng xuất

Mục đích Cho người quản lý thoát khỏi hệ thống đang sử dụng

Dữ liệu vào Yêu cầu đăng xuất

Xử lý Thực hiện yêu cầu đăng xuất khỏi hệ thống

Dữ liệu ra Trở về trang giao diện người dùng

Trang 37

Quản lý người dùng

Mục đích Người quản trị có thể kiểm soát được người dùng, admin có thể

phân quyền, thêm, sửa, xóa người dùng

Dữ liệu vào Các thông tin của người dùng

Xử lý Xử lý các yêu cầu

Dữ liệu ra Hiển thị lên giao diện quản lý

Quản lý chương trình tivi

Mục đích

+ Người quản trị có thể kiểm soát được các chương trình tivi Có thể cho chương trình đó hiển thị lên web không,chương trình đó thuộc kênh nào…

+Admin có thể tìm kiếm, xem, sửa xóa và cập nhật các kênh tivi+Admin có thể xem chi tiết về từng chương trình tivi tại trang quản lý

Dữ liệu vào

+Dữ liệu tìm kiếm+ Dữ liệu thêm kênh mới

+Dữ liệu về update kênh mới+Dữ liệu về chương trình cần xóa

Xử lý Xử lý các yêu cầu truy xuất dữ liệu để chỉnh sửa chương trình tivi

và cập nhập dữ liệu khi thêm chương trình mới

Dữ liệu ra Hiển thị lên giao diện

Quản lý kênh tivi

Mục đích Admin có thể tìm kiếm, xem, sửa xóa và cập nhật các kênh tivi

Dữ liệu vào +Dữ liệu tìm kiếm

+ Dữ liệu thêm kênh mới

+Dữ liệu về update kênh mới

Trang 38

+Dữ liệu về kênh cần xóa+Xem chi tiết chương trình

Xử lý Truy xuất dữ liệu để chỉnh sửa kênh và cập nhập dữ liệu khi thêm

kênh mới

Dữ liệu ra Hiển thị tất cả kênh

Quản lý các liên kết website và quảng cáo

Mục đích Admin có thể tìm kiếm, xem, sửa xóa và cập nhật các trang web

liên kết và quảng cáo

Dữ liệu vào

+ Dữ liệu tìm kiếm+ Dữ liệu thêm liên kết mới mới

+Dữ liệu về update liên kết mới+Dữ liệu về liên kết cần xóa

Xử lý Truy xuất dữ liệu để chỉnh sửa liên kết, cập nhập dữ liệu khi thêm

liên kết mới, xóa liên kết

Dữ liệu ra Hiển thị tất cả các yêu cầu đáp trả

3.2 THIẾT KẾ HỆ THỐNG

3.2.1 Mô hình phân cấp chức năng

• Trang dành cho Admin

Trang 39

Hình 3.1: Mô hình phân cấp chức năng của Admin

• Trang dành cho người duyệt web

Xóa user

Xóa user Sửa user

Thêm user

Thêm user Tìm kiếm user

Xóa kênh

ti vi

Xóa kênh

Quản lý user

Quản lý kênh ti vi

Quản lý kênh ti vi

Quản lý banner

Tìm kiếm banner

Tìm kiếm banner

Trang 40

Hình 3.2: Mô hình phân cấp chức năng của người duyệt web

Xem chi tiết chương trình

Xem chi tiết chương trình

Danh sách chương trình theo kênh

Danh sách chương trình theo kênh

Xem chương trình theo kênh

Xem chương trình theo kênh

Xem liên kết website

Xem liên kết website

Xem chương trình mới nhất

Xem chương trình mới nhất

Tìm kiếm chương trình

Tìm kiếm chương trình

Trang chủ

Ngày đăng: 31/03/2015, 10:00

HÌNH ẢNH LIÊN QUAN

Hình 2.2: Hình ảnh của Zend Framework - Xây dựng website xem tivi online
Hình 2.2 Hình ảnh của Zend Framework (Trang 24)
Hình 2.3: Hình ảnh của CakePHP - Xây dựng website xem tivi online
Hình 2.3 Hình ảnh của CakePHP (Trang 25)
Hình 3.1: Mô hình phân cấp chức năng của Admin - Xây dựng website xem tivi online
Hình 3.1 Mô hình phân cấp chức năng của Admin (Trang 39)
Hình 3.7:  Mô hình Sequence Diagram của kiến trúc hệ thống Framework MVC - Xây dựng website xem tivi online
Hình 3.7 Mô hình Sequence Diagram của kiến trúc hệ thống Framework MVC (Trang 46)
Hình 3.8:  Mô hình Class Diagram của kiến trúc hệ thống Framework MVC - Xây dựng website xem tivi online
Hình 3.8 Mô hình Class Diagram của kiến trúc hệ thống Framework MVC (Trang 46)
Hình 3.11:  Mô hình  Sequence  Diagram của trang chủ phía người dùng - Xây dựng website xem tivi online
Hình 3.11 Mô hình Sequence Diagram của trang chủ phía người dùng (Trang 48)
Hình 3.12:  Mô hình  Sequence  Diagram của chức năng tìm kiếm chương trình tivi - Xây dựng website xem tivi online
Hình 3.12 Mô hình Sequence Diagram của chức năng tìm kiếm chương trình tivi (Trang 49)
Hình 3.18: Mô hình  Sequence Diagram của chức năng thêm mới chương trình ti vi - Xây dựng website xem tivi online
Hình 3.18 Mô hình Sequence Diagram của chức năng thêm mới chương trình ti vi (Trang 54)
Hình 3.23: Mô hình  Sequence Diagram của chức năng sửa kênh ti vi - Xây dựng website xem tivi online
Hình 3.23 Mô hình Sequence Diagram của chức năng sửa kênh ti vi (Trang 57)
Hình 3.24: Mô hình  Sequence Diagram của chức năng xóa kênh tivi - Xây dựng website xem tivi online
Hình 3.24 Mô hình Sequence Diagram của chức năng xóa kênh tivi (Trang 58)
Hình 3.28: Mô hình  Sequence Diagram của chức năng xóa liên kết website và - Xây dựng website xem tivi online
Hình 3.28 Mô hình Sequence Diagram của chức năng xóa liên kết website và (Trang 60)
Hình 3.31: Mô hình Class Diagram của chức năng hiển thị chương trình mới nhất - Xây dựng website xem tivi online
Hình 3.31 Mô hình Class Diagram của chức năng hiển thị chương trình mới nhất (Trang 61)
Hình 4.1: Hình ảnh giao diện trang chủ - Xây dựng website xem tivi online
Hình 4.1 Hình ảnh giao diện trang chủ (Trang 75)
Hình 4.11: Hình ảnh giao diện của chức năng sửa chương trình tivi - Xây dựng website xem tivi online
Hình 4.11 Hình ảnh giao diện của chức năng sửa chương trình tivi (Trang 84)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w