Đồ án tốt nghiệp Codeigniter Framework(Lập trình Web)

122 2.9K 8
Đồ án tốt nghiệp Codeigniter Framework(Lập trình Web)

Đ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

Đây là Báo cáo đồ án tốt nghiệp "Tìm hiểu về framework php Codeigniter" một cách chi tiết nhất. Đây là đồ án cá nhân của mình, hôm nay up lên chia sẻ với mọi người.

Đồ án tốt nghiệp kỹ sư Trang 1 Ngành Công Nghệ Thông Tin MỤC LỤC CHƢƠNG 1 9 MỞ ĐẦU 9 1.1 Lý do chọn framework để phát triển ứng dụng website 9 1.2 Một số PHP Framework phổ biến hiện nay 11 1.2.1 CodeIgniter 11 1.2.2 Zend Framework 12 1.2.3 Yii Framework 13 1.2.4 CakePHP 13 1.2.5 Symfony 14 1.2.6 Prado 15 1.3 Lựa chọn PHP framework phù hợp 15 1.4 Bố cục của đồ án 16 1.5 Mục tiêu 16 CHƢƠNG 2 17 CÁC THÀNH PHẦN CỦA CODEIGNITER 17 2.1 Tổng quan về CodeIgniter 17 2.1.1 Những điểm nổi bật 17 2.1.1.1 Được thiết kế theo mô hình MVC (Model – View – Controller): 17 2.1.1.2 Tốc độ: 17 2.1.1.3 Nhẹ gọn: 17 2.1.1.4 Dễ sử dụng: 17 2.1.1.5 Thư viện phong phú: 18 2.1.1.6 Miễn phí: 18 2.1.1.7 Bảo Mật: 18 2.1.1.8 Search Engine Optimization: 18 2.1.2 Những điểm hạn chế 18 2.1.2.1 Chưa hổ trợ AJAX: 18 2.1.2.2 Chưa hổ trợ ORM: 18 2.1.2.3 Chưa hổ trợ Event-Driven Programming: 19 2.1.2.4 Chưa hổ trợ một số module thông dụng: 19 Đồ án tốt nghiệp kỹ sư Trang 2 Ngành công nghệ thông tin 2.1.3 Cấu trúc thư mục của CodeIgniter 19 2.1.4 Hoạt động của CodeIgniter 22 2.1.5 CodeIgniter URLs 22 2.1.6 Định tuyến URI (URI Routing) 24 2.1.7 Model 25 2.1.8 View 29 2.1.9 Controller 31 2.1.10 Chức năng Helper 34 2.1.11 Thư viện của CodeIgniter 35 2.1.11.1 Định nghĩa một thư viện mới 37 2.1.11.2 Thay thế một thư viện 38 2.1.11.3 Mở rộng một thư viện 38 2.2 Những thƣ viện chính 38 2.2.1 Thư viện Calendar 38 2.2.2 Thư viện Shopping Cart 42 2.2.3 Thư viện Email 48 2.2.4 Thư viện Form Validation 53 2.2.4.1 Thiết lập điều kiện kiểm tra 53 2.2.4.2 Xử lý lỗi 58 2.2.4.3 Các tiện ích của Form Validation 59 2.2.5 Thư viện Pagination 60 2.2.5.1 Tạo phân trang 60 2.2.5.2 Thiết lập cấu hình trong một tập tin 61 2.2.5.3 Tùy chọn trong Pagination 61 2.2.6 Thư viện Session 62 2.2.6.1 Cách thức hoạt động 62 2.2.6.2 Cài đặt 63 2.2.6.3 Thêm thông tin vào session 63 2.2.6.4 Xóa thông tin trong session 63 2.2.6.5 Xóa tất cả session 63 2.2.6.6 Lấy thông tin trong session 64 Đồ án tốt nghiệp kỹ sư Trang 3 Ngành công nghệ thông tin 2.2.6.7 Lưu session vào cơ sở dữ liệu 64 2.2.6.8 Thiết lập các tùy chọn 65 2.2.7 Thư viện Database 66 2.2.7.1 thiết lập thông tin cơ sở dữ liệu 66 2.2.7.2 Truy vấn cơ sở dữ liệu 67 2.2.7.3 Active Record 69 CHƢƠNG 3 75 CÁC KỸ THUẬT ÁP DỤNG ĐỂ XÂY DỰNG ỨNG DỤNG 75 3.1 Session 75 3.1.1 Lưu thông tin người dùng 75 3.1.2 So sánh hai sản phẩm 76 3.2 Phân trang 78 3.3 Xây dựng giỏ hàng 80 3.4 Gửi mail 81 3.5 Xử lý các lỗi không tìm thấy 82 CHƢƠNG 4 87 ỨNG DỤNG MINH HỌA 87 4.1 Thiết kế cơ sở dữ liệu 87 4.2 Kiến trúc ứng dụng 95 4.2.1 Models 95 4.2.2 Controller 96 4.2.3 Views 96 4.3 Sơ đồ Use case 97 4.3.1 Sơ đồ Use case của người dùng và thành viên 97 4.3.2 Sơ đồ Use case của Admin 98 4.4 Danh mục các chức năng của ứng dụng 99 4.4.1 Người dùng 99 4.4.2 Thành viên 104 4.4.3 Quản lý Admin 108 CHƢƠNG 5 119 KẾT LUẬN 119 Đồ án tốt nghiệp kỹ sư Trang 4 Ngành công nghệ thông tin 5.1 Đánh giá 119 5.1.1 Về lý thuyết 119 5.1.2 Về ứng dụng 119 5.2 Hƣớng phát triển và mở rộng của đồ án 120 5.2.1 Về lý thuyết 120 5.2.2 Về ứng dụng 121 5.3 Lời kết 121 Đồ án tốt nghiệp kỹ sư Trang 5 Ngành công nghệ thông tin DANH MỤC TỪ VIẾT TẮT  HTTP…………………………………………… Hypertext Transfer Protocol  MVC…………………………………………… Model – View - Controller  ORM…………………………………………… Object-Relational Mapping  PHP……………………………….…………… PHP Hypertext Preprocessor  SQL…………………………………………… Structured Query Language  URI…………………………………………… Uniform Resource Identifier  URL…………………………………………… Uniform Resource Location  XML………………………………………… Extensible Markup Language  XSS…………………………………………………… Cross Site Scripting Đồ án tốt nghiệp kỹ sư Trang 6 Ngành công nghệ thông tin DANH MỤC CÁC BẢNG Bảng 2-1 Danh sách thư viện của CodeIgniter 35 Bảng 2-2 Bảng thiết lập giá trị của thư viện Calendar 40 Bảng 2-3 Bảng thiết lập giá trị của thư viện Email 49 Bảng 2-4 Bảng thiết lập giá trị của thư viện Form Validation 54 Bảng 2-5 Bảng các hàm xử lý trong thư viện Form Validation 55 Bảng 2-6 Bảng thiết lập giá trị trong thư viện Session 65 Bảng 2-7 Bảng thiết lập cấu hình trong tập tin database.php 66 Bảng 4-1 sản phẩm ( ci_sanpham ) 88 Bảng 4-2 Đánh giá sản phẩm (ci_danhgia ) 89 Bảng 4-3 Nhà sản xuất ( ci_hang ) 89 Bảng 4-4 loại sảm phẩm ( ci_loai ) 89 Bảng 4-5 tài khoản Admin ( ci_admin ) 89 Bảng 4-6 tài khoản thành viên ( ci_member ) 90 Bảng 4-7 quản lý website ( ci_website ) 90 Bảng 4-8 tỉnh/thành phố (ci_tinhtp ) 91 Bảng 4-9 hóa đơn ( ci_hoadon ) 91 Bảng 4-10 chi tiết hóa đơn (ci_chitiet_hoadon ) 91 Bảng 4-11 thông tin hóa đơn ( ci_guest ) 91 Bảng 4-12 tin tức ( ci_bantin ) 92 Bảng 4-13 khuyến mãi ( ci_khuyenmai ) 92 Bảng 4-14 quản lý quảng cáo ( ci_quangcao ) 93 Bảng 4-15 quản lý slideshow ( ci_slideshow ) 93 Bảng 4-16 loại linh kiện và giá ( ci_timkiem ) 93 Bảng 4-17 danh sách linh kiện và giá ( ci_giatri_tk ) 93 Bảng 4-18 Session ( ci_sessions ) 93 Bảng 4-19 danh sách tài khoản mail website (ci_send_mail ) 94 Bảng 4-20 danh sách ứng dụng mail của website ( ci_ungdung_mail ) 94 Bảng 4-21 danh sách mail của người dùng ( ci_nhanmail ) 94 Bảng 4-22 quản lý liên hệ trực tuyến ( ci_lienhe_online ) 94 Bảng 4-23 danh sách thư liên hệ ( ci_lienhe_offline ) 95 Đồ án tốt nghiệp kỹ sư Trang 7 Ngành công nghệ thông tin DANH MỤC CÁC HÌNH Hình 1-1 Mô hình MVC 10 Hình 1-2 CodeIgniter Framework 11 Hình 1-3 Zend Framework 12 Hình 1-4 Yii Framework 13 Hình 1-5 CakePHP Framework 13 Hình 1-6 Symfony Framework 14 Hình 1-7 Prado Framework 15 Hình 2-1 Cấu trúc của CodeIgniter 19 Hình 2-2 Dòng chảy dữ liệu trong CodeIgniter 22 Hình 2-3 Lịch bắt đầu vào ngày thứ bảy 40 Hình 2-4 Lịch dạng đầy đủ 41 Hình 3-1 Sơ đồ hoạt động quá trình đăng nhập của người dùng 75 Hình 3-2 Quá trình hoạt động của so sánh 2 sản phầm 77 Hình 3-3 Mô tả phân trang 78 Hình 3-4 Quán trình thêm sản phẩm vào giỏ hàng 80 Hình 4-1 Lược đồ cơ sở dữ liệu 87 Hình 4-2 Sơ đồ kiến trúc Models của ứng dụng 95 Hình 4-3 Sơ đồ kiến trúc Controllers của ứng dụng 96 Hình 4-4 Sơ đồ kiến trúc Views của ứng dụng 96 Hình 4-5 Sơ đồ Use Case của người dùng và thành viên 97 Hình 4-6 Sơ đồ Use Case của Admin 98 Hình 4-7 Danh sách nhà sản xuất và số sản phẩm của nhà sản xuất đó 99 Hình 4-8 Danh sách sản phẩm mới nhất 99 Hình 4-9 Chi tiết sản phẩm 100 Hình 4-10 Đánh giá sản phẩm 100 Hình 4-11 Nhận thông tin mới nhất qua mail 101 Hình 4-12 Form liên hệ 101 Hình 4-13 Tìm kiếm nâng cao 101 Hình 4-14 So sánh 2 sản phẩm 102 Hình 4-15 Thông tin giỏ hàng 103 Hình 4-16 Form đăng ký 103 Hình 4-17 Form lấy mật khẩu mới 103 Hình 4-18 Thông tin cá nhân và lịch sử giao dịch 104 Hình 4-19 Form cập nhật thông tin cá nhân 104 Hình 4-20 Form cập nhật mật khẩu 105 Hình 4-21 Form điền thông tin mua hàng 105 Hình 4-22 Hóa đơn mua hàng 106 Hình 4-23 In hóa đơn mua hàng 107 Hình 4-24 Form đăng nhập của Admin 108 Đồ án tốt nghiệp kỹ sư Trang 8 Ngành công nghệ thông tin Hình 4-25 Giao diện quản lý của Admin 108 Hình 4-26 Quản lý doanh thu 109 Hình 4-27 Quản lý sản phẩm bán ra (chưa làm ) 109 Hình 4-28 Quản lý danh sách nhà sản xuất 110 Hình 4-29 Thêm nhà sản xuất 110 Hình 4-30 Quản lý sản phẩm 110 Hình 4-31 Thêm sản phẩm 111 Hình 4-32 Quản lý hóa đơn chưa thanh toán 111 Hình 4-33 Quản lý hóa đơn đã thanh toán 111 Hình 4-34 Quản lý hóa đơn chưa được kích hoạt 112 Hình 4-35 Quản lý thành viên 112 Hình 4-36 Thêm thành viên 112 Hình 4-37 Danh sách thành viên bị khóa 113 Hình 4-38 Quản lý liên hệ do khách hàng gửi 113 Hình 4-39 Chi tiết liên hệ của khách hàng và trả lời thư 113 Hình 4-40 Quản lý tin tức 114 Hình 4-41 Thêm tin tức 114 Hình 4-42 Quản lý tin tức khuyến mãi 114 Hình 4-43 Thêm tin tức khuyến mãi 115 Hình 4-44 Quản lý linh kiện 115 Hình 4-45 Chi tiết linh kiện 115 Hình 4-46 Quản lý cấu hình website 116 Hình 4-47 Quản lý tài khoản mail của website 116 Hình 4-48 Thêm tài khoản mail cho website 116 Hình 4-49 Quản lý ứng dụng gửi mail 116 Hình 4-50 Quản lý Slideshow 117 Hình 4-51 Quản lý quảng cáo 117 Hình 4-52 Quản lý liên hệ trực tuyến 117 Hình 4-53 Thêm liên hệ trực tuyến 118 Hình 4-54 Quản lý danh sách mail nhận thông tin mới nhất từ website 118 Hình 4-55 Form soạn thư để gửi đến danh sách mail đăng ký nhận thông tin 118 Đồ án tốt nghiệp kỹ sư Trang 9 Ngành công nghệ thông tin CHƢƠNG 1 MỞ ĐẦU   1.1 Lý do chọn framework để phát triển ứng dụng website Có lẽ thuật ngữ Framework không còn xa lạ gì đối với những người đã từng học PHP, tuy nhiên vẫn có rất nhiều người không hiểu nó là cái gì, nó có gì và làm được những gì… Và tại sao phần lớn các lập trình viên lựa chọn PHP Framework làm ngôn ngữ lập trình ứng dụng web. Như chúng ta đã biết, PHP (viết tắt hồi quy của PHP Hypertext Preprocessor) là một ngôn ngữ script rất phổ biến hiện nay bởi những lý do: mã nguồn mở, linh hoạt, công cụ mạnh mẽ, dễ học, dễ sử dụng và hoàn toàn miễn phí. Lập trình viên có thể sử dụng PHP để tạo ra các trang web tin tức, giải trí, giáo dục, thương mai điện tử…Tuy nhiên mã PHP mà lập trình viên tạo ra sẽ trở nên đơn điệu, lủng củng, trùng lặp, đôi khi còn tạo ra các lỗ hổng cho website. Đó là lúc lập trình viên cần đến PHP Framework. Nói một cách dễ hiểu Framework là một thư viện, bộ khung chứa sẵn các “vật liệu” ở nhiều lĩnh vực khác nhau, lập trình viên chỉ việc gọi ra sử dụng mà không cần mất nhiều thời gian để tự thiết kế trước khi dùng. Ví dụ để thiết kế một trò chơi đua xe, nếu không có bộ Framework chuyên dụng cho game thì người lập trình game phải tạo ra khung xe, bánh xe, người lái, đường đi… Sau đó mới tính đến chuyện ghép chúng lại với nhau để tạo ra không gian cho game. Nếu có sẵn bộ Framework thì lập trình viên chỉ viết lệnh lấy chúng từ Framework và ghép chúng lại. Có thể hình dung Framework bao gồm các vật liệu như gạch, cát, đá, xi măng, nước, sắt… Nhưng tùy theo cách thiết kế của người kiến trúc sư mà tạo ra được những căn nhà, trường học có hình dạng, kích thước khác nhau. Từ ví dụ trên có thể thấy Framework là một thư viện dựng sẵn, chứa nhiều tập tin giúp lập trình có thể tạo ra các ứng dụng khác nhau bằng cách lấy ra sử dụng mà không cần định nghĩa lại. PHP framework làm cho sự phát triển của các ứng dụng web viết bằng PHP trở nên trôi chảy, ngắn gọn, mạnh mẽ và bảo mật hơn bằng cách cung cấp một cấu trúc cơ bản để xây dựng những ứng dụng đó. Hay nói cách khác PHP framework Đồ án tốt nghiệp kỹ sư Trang 10 Ngành công nghệ thông tin cung cấp các tiện ích, thư viện, các đoạn mã dựng sẵn giúp lập trình viên tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng, tối ưu và giảm thiểu sự lặp đi lặp lại các đoạn mã. Ngoài ra PHP framework có thể tương tác chính xác với cơ sở dữ liệu (Database) và tách phần mã PHP ra khỏi giao diện giúp ứng dụng ổn định hơn và dễ quản lý hơn. Điều này cho phép lập trình viê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 một ứng dụng viết bằng PHP thuần. PHP framework được thiết kế theo một mô hình chuẩn để lập trình viên có thể dễ dàng sử dụng, quản lý và bảo trì ứng dụng. Đa số các frameword hiện nay đều chọn MVC làm mô hình thiết kế ứng dụng. MVC là viết tắt của Model View Controller cho phép tách biệt các mã nghiệp vụ (bussiness 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 một cách riêng lẻ. Mô hình MVC gồm ba thành phần: Model, View và Controller. Hình 1-1 Mô hình MVC Trong đó: Model (Tầng dữ liệu): là một đối tượng hoặc một tập hợp đối tượng biểu diễn cho phần dữ liệu của ứng dụng. Model có nhiệm vụ tương tác đến dữ liệu trong cơ sở dữ liệu, thường là các thao tác thay đổi dữ liệu như thêm, xóa, sửa, truy vấn dữ liệu… Nếu dữ liệu trong Model thay đổi thì ngoài View sẽ được cập nhật lại. View (Tầng giao diện): là thành phần thể hiện dữ liệu trong Model thành các giao diện tương tác với người dùng. View cung cấp các menu, nút bấm, hộp đối thoại,chọn lựa, các checkbox… để người dùng có thể thêm, xóa, sửa, truy xuất hay [...]... nào 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 người sử dụng Dưới đây là một số PHP framework được đánh giá là tốt và phổ biến nhất hiện nay: 1.2.1 CodeIgniter Hình 1-2 CodeIgniter Framework Đồ án tốt nghiệp kỹ sư Trang 12 Ngành công nghệ thông tin CodeIgniter được biết đến như một framework dễ hiểu, dễ sử dụng, cho hiệu suất cao và được cộng đồng... thấy rõ được các tính năng của CodeIgniter thì việc xây dựng một website thương mại điện tử là lựa chọn hợp lý nhất Vì hầu hết các ứng dụng website thương mại điện tử cần hội đủ các yếu tố giỏ hàng, session, gửi mail thanh toán, phân trang… Đặc biệt là phải có tốc độ xử lý thông tin nhanh Đồ án tốt nghiệp kỹ sư Trang 16 Ngành công nghệ thông tin 1.4 Bố cục của đồ án Đồ án bao gồm 5 chương:  Chƣơng... website thương mại điện tử bằng CodeIgniter Đồ án tốt nghiệp kỹ sư Trang 17 Ngành công nghệ thông tin CHƢƠNG 2 CÁC THÀNH PHẦN CỦA CODEIGNITER  -2.1 Tổng quan về CodeIgniter CodeIgniter là một nền tảng ứng dụng web mã nguồn mở được viết bằng ngôn ngữ PHP bởi Rick Ellis (CEO của EllisLab, Inc) Phiên bản đầu tiên được phát hành vào ngày 28/02/2006, hiện tại CodeIgniter đã được nâng cấp lên... chưa đầy đủ), Symfony 3.03mb… 2.1.1.4 Dễ sử dụng: CodeIgniter khá thân thiện với người dùng, trong file download về có kèm theo một bản hướng dẫn khá đầy đủ và ví dụ minh họa về từng phần, giải thích chi tiết CodeIgniter rất phù hợp với người mới làm quen với lập trình Đồ án tốt nghiệp kỹ sư Trang 18 Ngành công nghệ thông tin 2.1.1.5 Thư viện phong phú: CodeIgniter hỗ trợ khá đầy đủ các tiện ích thông... lập trình viên đã có thể sử dụng lớp này trong controller bằng cách gọi: $this->Account->function(); Nếu tên lớp model quá dài hay vì một lý do nào đó, lập trình viên có thể gán một tên khác cho lớp model đó bằng cách truyền vào tham số thứ hai: Đồ án tốt nghiệp kỹ sư Trang 28 Ngành công nghệ thông tin $this->load->model(„Blogmodel‟,‟Blog‟); Khi đó để gọi phương thức function() của lớp Blogmodel lâp trình. .. những lập trình viên muốn tạo ra các ứng dụng website doanh nghiệp Đây là một framework mã nguồn mở với đầy đủ các tính năng cần thiết Nhưng Symfony có vẻ chạy chậm hơn so với các framework khác Hiện nay Symfony có phiên bản mới nhất là 1.4.12 (dự định tháng 7/2011 sẽ cho ra mắt phiên bản 2.0 beta ), download bản 1.4.12 tại website http://www.symfony-project.org Dung lượng 3.03 mb Đồ án tốt nghiệp kỹ... là 2.50 mb 1.2.4 CakePHP Hình 1-5 CakePHP Framework Đồ án tốt nghiệp kỹ sư Trang 14 Ngành công nghệ thông tin CakePHP là một 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 một nguyên tắc thiết kế với Ruby on Rails CakePHP là một 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ướng đối tượng trong chương trình ORM giúp mã nguồn ngắn gọn hơn và các Đồ án tốt nghiệp kỹ sư Trang 19 Ngành công nghệ thông tin thao tác trong cơ sở dữ liệu dễ dàng hơn Hiện nay CodeIgniter vẫn chưa hổ trợ ORM 2.1.2.3 Chưa hổ trợ Event-Driven Programming: Event-Driven Programming (lập trình hướng sự kiện) là một mô hình lập trình trong đó các luồng xử lý của hệ thống được xác định bởi các sự kiện... $application_folder=“application/example1”; Hay $application_folder=“application/example2”; Đồ án tốt nghiệp kỹ sư Trang 22 Ngành công nghệ thông tin 2.1.4 Hoạt động của CodeIgniter Hình 2-2 Dòng chảy dữ liệu trong CodeIgniter  Tập tin index.php được xem là controller đầu vào, thiết lập các tài nguyên cần thiết để chạy ứng dụng CodeIgniter  Routing: Routing có nhiệm vụ xem xét các yêu cầu HTTP và xác định hướng... theo 2.1.5 CodeIgniter URLs Theo mặc định, URL trong CodeIgniter được thiết kế một cách tối ưu, dễ nhớ và thân thiện với người dùng Thay vì sử dụng các chuỗi truy vấn tiêu chuẩn truyền thống tiếp cận đến các URL thì CodeIgniter sử dụng một cách tiếp cận dựa vào các phân khúc (segment) URI Segments: Các segment trong URL tiếp cận mô hình Model – View – Controller có dạng như sau: Đồ án tốt nghiệp kỹ . điện tử bằng CodeIgniter framework. Đồ án tốt nghiệp kỹ sư Trang 17 Ngành công nghệ thông tin CHƢƠNG 2 CÁC THÀNH PHẦN CỦA CODEIGNITER  2.1 Tổng quan về CodeIgniter CodeIgniter là. download bản 1.4.12 tại website http://www.symfony-project.org. Dung lượng 3.03 mb. Đồ án tốt nghiệp kỹ sư Trang 15 Ngành công nghệ thông tin 1.2.6 Prado Hình 1-7 Prado Framework Prado. XSS…………………………………………………… Cross Site Scripting Đồ án tốt nghiệp kỹ sư Trang 6 Ngành công nghệ thông tin DANH MỤC CÁC BẢNG Bảng 2-1 Danh sách thư viện của CodeIgniter 35 Bảng 2-2 Bảng thiết lập giá trị của thư

Ngày đăng: 30/05/2014, 16:39

Tài liệu cùng người dùng

Tài liệu liên quan