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

ỨNG DỤNG FRAMEWORK CODEIGNITER ĐỂ XÂY DỰNG WEBSITE THUÊ GIÚP VIỆC THEO GIỜ KHU VỰC QUẢNG NAM ĐÀ NẴNG - Full 10 điểm

74 0 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

Tiêu đề Ứng Dụng Framework Codeigniter Để Xây Dựng Website Thuê Giúp Việc Theo Giờ Khu Vực Quảng Nam Đà Nẵng
Tác giả Nguyễn Văn Trí
Người hướng dẫn ThS. Hồ Tuấn Anh
Trường học Trường Đại Học Quảng Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2017
Thành phố Quảng Nam
Định dạng
Số trang 74
Dung lượng 1,63 MB

Cấu trúc

  • PHẦN 1. MỞ ĐẦU (8)
    • 1.1. Lý do chọn đề tài (8)
    • 1.2. Mục tiêu của đề tài (8)
    • 1.3. Đối tượng và phạm vi nghiên cứu (9)
    • 1.4. Phương pháp nghiên cứu (9)
    • 1.5. Lịch sử nghiên cứu (9)
    • 1.6. Đóng góp của đề tài (9)
    • 1.7. Cấu trúc đề tài (10)
  • PHẦN 2. NỘI DUNG NGHIÊN CỨU (11)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI (11)
    • 1.1. Tổng quan về PHP (11)
      • 1.1.1. Khái niệm (11)
      • 1.1.2. Cú pháp PHP cơ bản (11)
      • 1.1.3. Hoạt động (12)
    • 1.2. Hệ quản trị cơ sở dữ liệu MYSQL (13)
      • 1.2.1. Tổng quan (13)
      • 1.2.2. Một số đặc điểm của MySQL (13)
      • 1.2.3. Hướng dẫn cài đặt Xampp (15)
      • 1.2.4. Tạo cơ sở dữ liệu MySQL với Xampp (18)
    • 1.3. Tổng quan về Framework Codeigniter (20)
      • 1.3.1. Tổng quan (20)
      • 1.3.2. Tính năng và ưu điểm (20)
      • 1.3.3. Những điểm hạn chế (21)
      • 1.3.4. Cài đặt Framework codeigniter (22)
    • 1.4. Phát triển website trên nền tảng Framework CodeIgniter (25)
      • 1.4.1. Tổng quan về mô hình MVC (25)
      • 1.4.2. Mô hình MVC trong Framework CodeIgniter (25)
      • 1.4.4. Cách sử dụng Model, View và Controller trong CodeIgniter (28)
      • 1.4.5. Cách sử dụng URI (URI Routing) (31)
      • 1.4.6. Cách sử dụng Form Validation (31)
      • 1.4.7. Các hàm trong CodeIgniter (32)
      • 1.4.8. Kết luận (36)
  • CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (37)
    • 2.1. Đặt tả yêu cầu (37)
      • 2.1.1. Các công cụ vẽ, kỹ thuật sử dụng (37)
      • 2.1.2. Xác định yêu cầu (37)
      • 2.1.3. Biểu đồ ca sử dụng (mức hệ thống) (37)
      • 2.1.4. Đặc tả yêu cầu (ca sử dụng) (38)
    • 2.2. Thiết kế phần mềm (43)
      • 2.2.1. Các công cụ, kỹ thuật sử dụng (43)
      • 2.2.2. Thiết kế các tương tác (44)
      • 2.2.3. Thiết kế các lớp (46)
      • 2.2.4. Thiết kế cơ sở dữ liệu (57)
    • 2.3. Cài đặt phần mềm (65)
      • 2.3.1 Các công cụ, kỹ thuật sử dụng (65)
      • 2.3.2. Kiến trúc vật lý của hệ thống (65)
      • 2.3.3. Cài đặt các lớp (67)
  • CHƯƠNG 3: CHƯƠNG TRÌNH DEMO (69)
    • 3.1. Trang chủ (69)
    • 3.2. Trang đặt giúp việc (70)
    • 3.3. Trang liên hệ (71)
  • PHẦN 3. KẾT LUẬN (72)
  • PHẦN 4. TÀI LIỆU THAM KHẢO (73)
    • 2.3.3.3. Cài đặt lớp tài khoản (68)

Nội dung

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ----  ----- KHÓA LUẬN TỐT NGHIỆP Tên đề tài: ỨNG DỤNG FRAMEWORK CODEIGNITER ĐỂ XÂY DỰNG WEBSITE THUÊ GIÚP VIỆC THEO GIỜ KHU VỰC QUẢNG NAM ĐÀ NẴNG Sinh viên thực hiện: NGUYỄN VĂN TRÍ MSSV: 2113021035 Chuyên ngành : CÔNG NGHỆ THÔNG TIN Khóa học: 2013 – 2017 Cán bộ hướng dẫn: ThS Hồ Tuấn Anh MSCB: ……… Qu ả ng Nam, tháng 04 n ă m 2017 i LỜI CẢM ƠN Được sự phân công của khoa Công Nghệ Thông Tin trường Đại Học Quảng Nam và sự đồng ý của thầy giáo hướng dẫn ThS Hồ Tuấn Anh tôi đã thực hiện đề tài “ ỨNG DỤNG FRAMEWORK CODEIGNITER ĐỂ XÂY DỰNG WEBSITE THUÊ GIÚP VIỆC THEO GIỜ KHU VỰC QUẢNG NAM ĐÀ NẴNG ” Để hoàn thành khóa luận này Tôi xin chân thành cảm ơn các thầy cô giáo đã tận tình hướng dẫn, giảng dạy trong suất quá trình học tập, nghiên cứu và rèn luyện tại trường Đại Học Quảng Nam Xin chân thành cảm ơn thầy giáo hướng dẫn ThS Hồ Tuấn Anh đã tận tình hướng dẫn tôi thực hiện khóa luận này Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất Song do buổi đầu mới làm quen với công tác nghiên cứu cũng như hạn chế về mặt kiến thức và kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy được Tôi rất mong được sự góp ý của quý Thầy, Cô giáo để khóa luận được hoàn chỉnh hơn Tôi xin chân thành cảm ơn ! ii MỤC LỤC PHẦN 1 MỞ ĐẦU 1 1 1 Lý do chọn đề tài 1 1 2 Mục tiêu của đề tài 1 1 3 Đối tượng và phạm vi nghiên cứu 2 1 4 Phương pháp nghiên cứu 2 1 5 Lịch sử nghiên cứu 2 1 6 Đóng góp của đề tài 2 1 7 Cấu trúc đề tài 3 PHẦN 2 NỘI DUNG NGHIÊN CỨU 4 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 4 1 1 Tổng quan về PHP 4 1 1 1 Khái ni ệ m 4 1 1 2 Cú pháp PHP c ơ b ả n 4 1 1 3 Ho ạ t độ ng 5 1 2 Hệ quản trị cơ sở dữ liệu MYSQL 6 1 2 1 T ổ ng quan 6 1 2 2 M ộ t s ố đặ c đ i ể m c ủ a MySQL 6 1 2 3 H ướ ng d ẫ n cài đặ t Xampp 8 1 2 4 T ạ o c ơ s ở d ữ li ệ u MySQL v ớ i Xampp 11 1 3 Tổng quan về Framework Codeigniter 13 1 3 1 T ổ ng quan 13 1 3 2 Tính n ă ng và ư u đ i ể m 13 1 3 3 Nh ữ ng đ i ể m h ạ n ch ế 14 1 3 4 Cài đặ t Framework codeigniter 15 1 4 Phát triển website trên nền tảng Framework CodeIgniter 18 1 4 1 T ổ ng quan v ề mô hình MVC 18 1 4 2 Mô hình MVC trong Framework CodeIgniter 18 iii 1 4 3 Framework CodeIgniter trong xây d ự ng website v ớ i mô hình MVC 19 1 4 4 Cách s ử d ụ ng Model, View và Controller trong CodeIgniter 21 1 4 5 Cách s ử d ụ ng URI (URI Routing) 24 1 4 6 Cách s ử d ụ ng Form Validation 24 1 4 7 Các hàm trong CodeIgniter 25 1 4 8 K ế t lu ậ n 29 CHƯƠNG 2 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 30 2 1 Đặt tả yêu cầu 30 2 1 1 Các công c ụ v ẽ , k ỹ thu ậ t s ử d ụ ng 30 2 1 2 Xác đị nh yêu c ầ u 30 2 1 3 Bi ể u đồ ca s ử d ụ ng (m ứ c h ệ th ố ng) 30 2 1 4 Đặ c t ả yêu c ầ u (ca s ử d ụ ng) 31 2 2 Thiết kế phần mềm 36 2 2 1 Các công c ụ , k ỹ thu ậ t s ử d ụ ng 36 2 2 2 Thi ế t k ế các t ươ ng tác 37 2 2 3 Thi ế t k ế các l ớ p 39 2 2 4 Thi ế t k ế c ơ s ở d ữ li ệ u 50 2 3 Cài đặt phần mềm 58 2 3 1 Các công c ụ , k ỹ thu ậ t s ử d ụ ng 58 2 3 2 Ki ế n trúc v ậ t lý c ủ a h ệ th ố ng 58 2 3 3 Cài đặ t các l ớ p 60 CHƯƠNG 3: CHƯƠNG TRÌNH DEMO 62 3 1 Trang chủ 62 3 2 Trang đặt giúp việc 63 3 3 Trang liên hệ 64 PHẦN 3 KẾT LUẬN 65 PHẦN 4 TÀI LIỆU THAM KHẢO 66 iv MỤC LỤC HÌNH ẢNH Hình 1 1: Hoạt động Client và Server 5 Hình 1 2 Hướng dẫn cài đặt xampp(1) 8 Hình 1 3 Hướng dẫn cài đặt xampp(2) 9 Hình 1 4 Hướng dẫn cài đặt xampp(3) 9 Hình 1 5 Hướng dẫn cài đặt xampp(4) 10 Hình 1 6 Hướng dẫn cài đặt xampp(5) 11 Hình 1 7 Tạo cơ sở dữ liệu 12 Hình 1 8 Cơ sở dữ liệu 12 Hình 1 9: Thư mục trong CodeIgniter 16 Hình 1 10: Thư mục trong file application 16 Hình 1 11: Thư mục trong file config 16 Hình 1 12: File config php 17 Hình 1 13: File database php 17 Hình 1 14: Mô hình MVC 18 Hình 1 15: Cấu trúc thư mục trong CodeIgniter 19 Hình 1 16: Cấu trúc thư mục trong file application 20 Hình 1 17: Dòng chảy dữ liệu trong CodeIgniter 21 Hình 2 1 Biểu đồ ca sử dụng (mức hệ thống) 30 Hình 2 2 Biểu đồ tuần tự cho ca sử dụng đăng nhập 37 Hình 2 3 Biểu đồ tuần tự cho ca sử dụng đăng ký 38 Hình 2 4 Biểu đồ tuần tự cho ca sử dụng đặt dịch vụ 38 Hình 2 5 Biểu đồ tuần tự cho ca sử dụng tìm kiếm 39 Hình 2 6 Biểu đồ lớp của hệ thống 49 Hình 2 7 Biểu đồ mô hình quan hệ 50 Hình 2 8 Biểu đồ thành phần 58 Hình 2 9 Biểu đồ triển khai 59 Hình 2 10 Cài đặt lớp Category 60 v Hình 2 11 Cài đặt lớp User 60 2 3 3 3 Cài đặt lớp tài khoản 61 Hình 2 12 Cài đặt lớp Tài khoản 61 Hình 3 1 Giao diện trang chủ 62 Hình 3 2 Giao diện trang đặt giúp việc 63 Hình 3 3 Giao diện trang liên hệ 64 vi DANH MỤC BẢNG Bảng 2 1 Bảng đặt tả Ca sử dụng Đăng ký 31 Bảng 2 2 Bảng đặt tả Ca sử dụng Đặt giúp việc 32 Bảng 2 3 Bảng đặt tả Ca sử dụng Tìm kiếm 33 Bảng 2 4 Bảng đặt tả Ca sử dụng Quản lí CSDL 34 Bảng 2 5 Bảng đặt tả Ca sử dụng Tìm kiếm 35 Bảng 2 6 Thẻ CRC lớp Staff 46 Bảng 2 7 Thẻ CRC lớp Category 47 Bảng 2 8 Thẻ CRC lớp Customer 48 Bảng 2 9 Bảng Staff 51 Bảng 2 10 Bảng Category 52 Bảng 2 11 Bảng Comment 52 Bảng 2 12 Bảng Contact 53 Bảng 2 13 Bảng Customer 53 Bảng 2 14 Bảng News 54 Bảng 2 15 Bảng Recruitment 55 Bảng 2 16 Bảng Reviews 56 Bảng 2 17 Bảng Introduce 56 Bảng 2 18 Bảng Sevice 57 Bảng 2 19 Bảng Taikhoan 57 1 PHẦN 1 MỞ ĐẦU 1 1 Lý do chọn đề tài - Trong sự phát triển mạnh mẽ của khoa học công nghệ thế giới, có thể nói rằng ngành công nghệ thông tin phát triển với tốc độ nhanh nhất và ngày càng thể hiện được vai trò to lớn , hết sức quan trọng đối với toàn bộ đời sống con người Hầu hết các lĩnh vực trong xã hội đều ứng dụng công nghệ thông tin, nhiều phần mềm đã mang lại hiệu quả không thể phủ nhận Song thực tiễn luôn đặt ra những yêu cầu mới đòi hỏi ngành công nghệ thông tin không ngừng phát triển để thỏa mãn và đáp ứng những thay đổi của cuộc sống Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty… Nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ Việc xây dựng các trang web để phục vụ cho các nhu cầu riêng của các tổ chức, công ty thậm chí các cá nhân ngày nay không lấy gì làm xa lạ - Bắt nguồn với ý tưởng này, cùng với những gợi ý của thầy Hồ Tuấn Anh, tôi đã chọn đề tài “ ỨNG DỤNG FRAMEWORK CODEIGNITER ĐỂ XÂY DỰNG WEBSITE THUÊ GIÚP VIỆC THEO GIỜ KHU VỰC QUẢNG NAM ĐÀ NẴNG ” làm khóa luận tốt nghiệp 1 2 Mục tiêu của đề tài - Nắm vững những kiến thức cơ bản cũng như mô hình MVC trong Codeigniter Framework - Áp dụng Framework CodeIgniter để xây dựng website thêu giúp việc theo giờ 2 1 3 Đối tượng và phạm vi nghiên cứu * Đối tượng nghiên cứu - Kiến thức về MVC và Framework Codeigniter 3 x, ngôn ngữ lập trình PHP, hệ quản trị cơ sở dữ liệu MYSQL - Ứng dụng Framework CodeIgniter vào xây dựng 1 website * Phạm vi nghiên cứu - Nghiên cứu các vấn đề xoay quanh việc lập trình ứng dụng bằng ngôn ngữ PHP, Framework Codeigniter Từ đó xây dựng website thêu giúp việc theo giờ 1 4 Phương pháp nghiên cứu - Tìm đọc tài liệu trên trang chủ codeigniter com, giáo trình, luận văn, bài báo, thông tin trên mạng - Phân tích, tổng hợp tài liệu - Thống kê, phân tích dữ liệu 1 5 Lịch sử nghiên cứu - Framework CodeIgniter đã được một số tác giả tìm hiểu và nghiên cứu trước đó Phần lớn các tác giả đều cho thấy một cách tổng quan về nội dung lý thuyết của Framework CodeIgniter đồng thời cũng xây dựng một website phù hợp với môi trường và bản thân tác giả - Với những ưu điểm của mình thì Framework CodeIgniter đã được sử dụng trong nhiều hệ thống lớn tuy nhiên nó còn khá mới mẻ đối với sinh viên trường Đại học Quảng Nam 1 6 Đóng góp của đề tài - Đề tài được nghiên cứu nhằm trình bày tổng quan về Framework CodeIgniter - Trình bày những kiến thức cơ bản và tổng quan về mô hình MVC trong Frameword CodeIgniter 3 - Cung cấp một nền tảng ứng dụng xây dựng website Có thể nói đây là một ứng dụng mang tính thiết thực, giúp người dùng có thêm nhiều lựa chọn và những trải nghiệm tốt nhất - Với đề tài này tôi mong muốn cung cấp một tài liệu tham khảo cho các bạn sinh viên trong khoa khi tiếp cận và tìm hiểu về lĩnh vực thiết kế website và nhất là lĩnh vực mà tôi đang nghiên cứu 1 7 Cấu trúc đề tài Ngoài phần mở đầu và kết luận, đề tài gồm ba chương: Chương 1: Cơ sở lý thuyết của đề tài Trong chương này giới thiệu về ngôn ngữ lập trình PHP, MYSQL, mô hình MVC và Framework CodeIgniter Chương 2: Phân tích và thiết kế hệ thống Chương 3: Chương trình Demo 4 PHẦN 2 NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 1 1 Tổng quan về PHP 1 1 1 Khái niệm - PHP viết tắt hồi quy của "Hypertext Preprocessor", là một ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm sinh ra mã html trên client PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ ràng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng - PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL - Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt - MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu 1 1 2 Cú pháp PHP cơ bản - Một mã nguồn PHP có thể đặt bất cứ nơi nào trong tài liệu Mã nguồn PHP được bắt đầu bằng - Tập tin mặc định của ngôn ngữ PHP có đuôi mỡ rộng là “ php” - Một file PHP thông thường chứa các thẻ HTML, và một số mã kịch bản PHP 5 - Dưới đây, chúng ta có một ví dụ về một tập tin PHP đơn giản, với một kịch bản PHP có sử dụng một chức năng được xây dựng trong PHP là lệnh “echo”: Tiêu đề Lưu ý : kết thúc một dòng lệnh PHP bằng một dấu chấm phẩy (;) 1 1 3 Hoạt động Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine để thông dịch dịch trang PHP và trả kết quả cho người dùng như hình bên dưới Hình 1 1: Ho ạ t độ ng Client và Server 6 1 2 Hệ quản trị cơ sở dữ liệu MYSQL 1 2 1 Tổng quan - MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải MySQL về từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho cá 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,… 1 2 2 Một số đặc điểm của MySQL - MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft) - MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu - MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (username) và mật khẩu tương ứng để truy xuất đến CSDL 7 Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽ không làm được gì cả giống như quyền chứng thực người dùng trong SQL Server vậy - Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có - Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn - Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức - Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại Bạn cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft) - Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn có thể truy cập MySQL tương tác với sử dụng một vài giao diện để bạn có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web… - Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được 8 - Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2 MySQL chạy được với mọi phần cứng từ các máy PC ở nhà cho đến các máy server - Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó Nếu bạn không thích một vài cái, bạn có thể thay đổi nó - Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet 1 2 3 Hướng dẫn cài đặt Xampp Bước 1 : Download XAMPP tại https://www apachefriends org/download html và tiến hành cài đặt như các chương trình thông thường Bước 2 : Sau khi tải file cài đặt về xong, hãy chạy nó, sau đó chọn Next Hình 1 2 H ướ ng d ẫ n cài đặ t xampp(1) Ở phần chọn đường dẫn, bạn hãy chọn đường dẫn cần lưu cài đặt của XAMPP Lưu ý rằng đường dẫn này bạn phải nhớ vì khi cài đặt web lên 9 localhost, bạn phải truy cập vào thư mục này Bạn nên để mặc định là c:\xampp Tiếp tục ấn Next Hình 1 3 H ướ ng d ẫ n cài đặ t xampp(2) Ở trang kế tiếp, bạn bỏ chọn phần “Learn more about Bitnami for XAMPP“ Và ấn Next 2 lần nữa để bắt đầu quá trình cài đặt XAMPP Hình 1 4 H ướ ng d ẫ n cài đặ t xampp(3) 10 Sau khi cài xong, ấn nút Finish để kết thúc cài đặt và mở bảng điều khiển của XAMPP Tuy nhiên, hãy khởi động lại máy sau khi cài đặt xong để tránh tình trạng không khởi động được localhost Start Apache và MySQL trong XAMPP control panel Hình 1 5 H ướ ng d ẫ n cài đặ t xampp(4) Sau khi khởi động xong, bạn hãy truy cập vào website với địa chỉ là http://localhost sẽ thấy nó hiển thị ra trang giới thiệu XAMPP như hình dưới 11 Hình 1 6 H ướ ng d ẫ n cài đặ t xampp(5) 1 2 4 Tạo cơ sở dữ liệu MySQL với Xampp - Khi nhắc đến database, bạn phải nhớ là nó bao gồm 3 thành phần chính là:  Tên user của database  Mật khẩu của user database  Tên database - Database Host (thường thì điền là localhost, bất kể là bạn dùng ở localhost hay host bình thường) - Bạn hãy tưởng tượng rằng, user của database sẽ có nhiệm vụ đọc và ghi dữ liệu vào database nên khi sử dụng các mã nguồn PHP, bạn phải khai báo cùng lúc cả user của database và tên database - Đối với localhost, bạn không cần tạo user cho database mà sẽ sử dụng thông tin user như sau:  Tên user database: root  Mật khẩu: bỏ trống - Do vậy, chúng ta chỉ cần tạo database là đủ Để tạo database, bạn hãy truy cập vào localhost với đường dẫn http://localhost/phpmyadmin Sau đó bạn nhấp vào menu Databases 12 Hình 1 7 T ạ o c ơ s ở d ữ li ệ u - Sau đó ở phần Create databsae, bạn nhập tên database cần tạo vào ô Database name, phần Collation bạn hãy chọn là utf8_unicode_ci như hình dưới rồi ấn nút Create kế bên Hình 1 8 C ơ s ở d ữ li ệ u - Tạo xong hãy nhìn bên menu tay trái, nếu nó xuất hiện tên database vừa tạo là thành công Vậy bây giờ, chúng ta tạm có một databse với các thông tin như: Database Host: localhost Database user: root Database password: trống 13 Database name: thuegiupviec Ví dụ : Vào thư mục cài đặt XAMPP/htdocs và tiến hành tạo file test php với nội dung như sau: Gõ trên trình duyệt địa chỉ localhost/test php Nếu hiện ra dòng chữ Hello World nghĩa là ứng dụng PHP đầu tiên đã chạy thành công 1 3 Tổng quan về Framework Codeigniter 1 3 1 Tổng quan CodeIgniter là một trong những PHP framework phổ biến nhất trong những năm trở lại đây Nó được xây dựng với tiêu chí: phát triển ứng dụng nhanh, đơn giản và sáng sủa Phiên bản chính thức đầu tiên của CodeIgniter được công bố ngày 28/02/2006, cho đến nay phiên bản hiện tại là V 3 x Ý tưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng dụng web được viết bằng ngôn ngữ Ruby Hiện tại CodeIgniter đang được phát triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc CodeIgniter cũng như nhiều PHP framework khác sử dụng mô hình MVC 1 3 2 Tính năng và ưu điểm Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation) và xử lý (business logic) của một phần mềm thành những thành phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảo trì Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User Guide) So với các PHP framework khác như CakePHP (1 3MB), Symfony (5 08MB) hay Zend Framework (5 66MB)…kích thước của CodeIgniter giúp giảm thiểu đáng kể không gian lưu trữ 14 Tốc độ nhanh: CodeIgniter được đánh giá là PHP framework có tốc độ nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mở rộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất thân thiện với các robot tìm kiếm Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật… Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và SQL Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống 1 3 3 Những điểm hạn chế Chưa hỗ trợ Object-Relational Mapping: Object Relational Mapping (ORM) là một kỹ thuật lập trình, trong đó các bảng của cơ sở dữ liệu được ánh xạ thành các đối tượng trong chương trình Kỹ thuật này giúp cho việc thực hiện các thao tác trong cơ sở dữ liệu (Create Read Update Delate – CRUD) dễ dàng, mã nguồn ngắn gọn hơn Hiện tại, CodeIgniter vẫn chưa hỗ trợ ORM Chưa hỗ trợ AJAX: AJAX (Asynchronous JavaScript and XML) đã trở thành một phần không thể thiếu trong bất kỳ ứng dụng Web nào AJAX giúp nâng cao tính tương tác giữa người dùng và hệ thống, giúp cho người dùng có cảm giác như đang sử dụng ứng dụng desktop vì các thao tác đều 15 diễn ra “tức thời” Hiện tại, CodeIgniter vẫn chưa có thư viện dựng sẵn nào để hỗ trợ xây dựng ứng dụng AJAX Lập trình viên phải sử dụng các thư viện bên ngoài, như jQuery, Script aculo us, Prototype hay Mootools… Chưa hỗ trợ một số module thông dụng: So sánh với framework khác, CodeIgniter không có các module thực thi một số tác vụ thường gặp trong quá trình xây dựng ứng dụng web như Chứng thực người dùng (User Authorization), trình phân tích RSS (RSS Parser) hay Trình xử lý PDF… Chưa hỗ trợ Event-Driven Programming: Event-Driven Programming (EDP) lf một nguyên lý lập trình, trong đó các luồng xử lý của hệ thống sẽ dựa vào các sự kiện, chẳng hạn như click chuột, gõ bàn phím…Đây không phải là một khuyết điểm to lớn của CodeIgniter vì hiện tại, chỉ có một số ít framework hỗ trợ EDP, bao gồm Prado, QPHP và Yii 1 3 4 Cài đặt Framework codeigniter 1 3 4 1 Yêu cầu của hệ thông CodeIgniter có thể hoạt động trên nhiều hệ điều hành và server, yêu cầu có cài đặt PHP phiên bản 4 x hoặc cao hơn, hệ quản trị cơ sở dữ liệu: MySQL (4 1+), MySQLi, Mircrosoft SQL Server, Postgres, Oracle, SQLite, và ODBC 1 3 4 2 Cài đặt - Framework CodeIgniter các bạn có thể trực tiếp tải tại trang chủ theo link: https:// codeigniter com /download bạn sẽ cài đặt phiên bản mới nhất của Ellislab cung cấp - Bạn giải nén toàn bộ file CodeIgniter 3 X vừa tải về từ phần số 1 vào thư mục htdocs của xampp đã cài đặt khi tải về 16 Hình 1 9: Th ư m ụ c trong CodeIgniter - Bạn quan tâm tới thư mục application Hình 1 10: Th ư m ụ c trong file application - Trong thư mục application bạn quan tâm tới thư mục config mở thư mục này ra bạn sẽ thấy trong thư mục config cần chú ý hai file config php và database php, hai file php này chúng ta sẽ chỉnh sửa để cài CodeIgniter Hình 1 11: Th ư m ụ c trong file config 17 - Bạn click mở và chỉnh sửa file config php như sau: Hình 1 12: File config php - Chỉnh sửa hai dòng code : $config[''''base_url''''] = ‘’ ; $config[index_page] = ‘’; Ví dụ : $config[''''base_url'''']= ‘http://thuegiupviec:8080/’ $config[''''index_page''''] = ''''''''" Để trống nếu bạn muốn xóa bỏ index trong index php trong CodeIgniter - Tiếp theo bạn click mở và chỉnh sửa file database php như sau : Hình 1 13: File database php 18 $db[''''default''''][''''hostname''''] = ‘localhost’ $db[''''default''''][''''username''''] = ‘root’ $db[''''default''''][''''password''''] = ‘’ $db[''''default''''][''''database''''] = ‘tên database của bạn’ - Tới đây bạn đã cài đặt xong CodeIgniter phiên bản mới nhất, bây giờ bạn có thể chạy website của bạn trên localhost và viết các ứng dụng của riêng bạn rồi 1 4 Phát triển website trên nền tảng Framework CodeIgniter 1 4 1 Tổng quan về mô hình MVC Hình 1 14: Mô hình MVC - Model-View-Control (MVC) là một kiến trúc phần mềm, hiện đang được xem là một mẫu thiết kế trong công nghệ phần mềm Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao diện, cho phép phát triển, kiểm tra và bảo trì các thành phần một cách độc lập - Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần View (mã HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web Thành phần Controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này, sau đó chuyển sang Model xử lý 1 4 2 Mô hình MVC trong Framework CodeIgniter 1 4 2 1 Model Model thể hiện các cấu trúc dữ liệu Các lớp thuộc thành phần Model thường thực hiện các tác vụ như truy vấn, thêm, xóa, cập nhật dữ liệu Khi dữ liệu trong Model thay đổi, thành phần View sẽ được cập nhật lại 19 1 4 2 2 View View 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 sử dụng Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau 1 4 2 3 Controller Controller đóng vai trò trung gian giữa Model và View Thông tin người dùng từ View được gửi cho Controller xử lý, sau đó Controller tương tác với Model để lấy dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho View 1 4 3 Framework CodeIgniter trong xây dựng website với mô hình MVC 1 4 3 1 Cấu trúc CodeIgniter Hình 1 15: C ấ u trúc th ư m ụ c trong CodeIgniter Tập tin index php được xem như controller đầu vào, tiếp nhận các yêu cầu từ phía client và chuyển các yêu cầu này cho hệ thống Thư mục user_guide chứa tài liệu hướng dẫn, bạn có thể xóa đi Thư mục system bao gồm phần lõi của CodeIgniter Chúng bao gồm các thư viện xây dựng sẵn, các tập tin ngôn ngữ, ghi chú về hệ thống Trong số đó, các thư mục sau khá quan trọng:  Thư mục application: Dành cho lập trình viên, các tập tin được lập trình cho ứng dụng sẽ lưu trong thư mục này 20  Thư mục helpers: Chứa các hàm hỗ trợ cho lập trình viên khi viết ứng dụng  Thư mục libraries: Chứa các thư viện dựng sẵn của CodeIgniter  Bên trong thư mục application có cấu trúc như sau : Hình 1 16: C ấ u trúc th ư m ụ c trong file application + Thư mục config: Chứa các tập tin cấu hình hệ thống + Thư mục hooks: chứa các tập tin để mở rộng mã nguồn CodeIgniter + Thư mục language: chứa các tập tin ngôn ngữ + Thư mục controllers: chứa các lớp controller do lập trình viên tạo ra + Thư mục helpers: chứa các hàm tiện ích do người dùng định nghĩa + Thư mục libraries: chứa các thư viện cho người dùng định nghĩa + Thư mục models: chứa các lớp model + Thư mục views: chứa các lớp view 21 1 4 3 2 Dòng chảy dữ liệu trong CodeIgniter Hình 1 17: Dòng ch ả y d ữ li ệ u trong CodeIgniter Tập tin index php: đóng vai trò làm controller đầu vào, thiết lập các tài nguyên cần thiết cho hệ thống Routing: Quá trình điều hướng giúp xác định các yêu cầu và hướng xử lý đối với chúng Caching: Nếu dữ liệu được yêu cầu đã được lưu trong bộ đệm, CodeIgniter sẽ trả dữ liệu trong bộ đệm về phía client Quá trình xử lý kết thúc Security: Dữ liệu trước khi được chuyển đến các Controller sẽ được lọc để phòng chống XXS hoặc SQL Injection Application Controller: Controller xử lý dữ liệu nhận được bằng cách gọi đến các Models, Libraries, Helpers, Plugins…có liên quan View: Dữ liệu được chuyển qua View để hiển thị cho người dùng Nếu chức năng caching được bật, dữ liệu sẽ được lưu trong cache cho những lần yêu cầu tiếp theo 1 4 4 Cách sử dụng Model, View và Controller trong CodeIgniter 1 4 4 1 Model Model là những lớp được xây dựng nhằm thực hiện việc trao đổi thông tin với cơ sở dữ liệu Một lớp Model có thể thực hiện các tác vụ truy vấn, thêm, xóa, cập nhật dữ liệu Trong CodeIgniter, việc khai báo các lớp model dành cho một thực thể nào đó là không cần thiết, vì trong controller của 22 thực thể đó, ta có thể gọi đến thư viện database để thực hiện các thao tác với cơ sở dữ liệu Tuy nhiên, để tiện cho việc quản lý, xây dựng lớp model cho một thực thể được khuyến khích Ví d ụ m ộ t l ớ p model trong CodeIgniter có c ấ u trúc nh ư sau : class taikhoan_model extends CI_model{ public function __construct(){ parent :: __construct(); } public function getList(){ $this->db->select(''''*''''); $this->db->from(''''taikhoan''''); $this->db->order_by(''''id_tk'''', ''''DESC''''); $query = $this->db->get(); $arTaikhoan = $query->result_array(); return $arTaikhoan; } } Khi khai báo m ộ t l ớ p model, ta c ầ n tuân theo m ộ t s ố quy t ắ c :  Tên lớp được viết hoa chữ đầu tiên, phần còn lại viết thường Ví dụ: User_model, Blog_model, Article_model…  Tên tập tin được đặt như tên lớp, và được đặt trong thư mục application/models/ Các thư mục có thể được lưu lồng vào nhau để thuận tiện cho việc quản lý Ví dụ: application/models/user_model php  Bắt buộc phải kế thừa từ lớp Model Trong hàm tạo của lớp con, phải gọi đến hàm tạo của lớp cha 23  Để sử dụng được model, ta sử dụng đoạn mã sau: $this->load- >model(‘user_model’) 1 4 4 2 View - View là những tập tin HTML được xây dựng nhằm 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 có thể là một trang web hoàn chỉnh, hay chỉ là một phần của trang web (header, footer, sidebar…) Nội dung của tập tin view, ngoài mã HTML còn có thể chứa mã PHP View không bao giờ được gọi trực tiếp mà phải thông qua controller - Để sử dụng view trong controller, ta sử dụng đoạn mã sau : $this->load->view(''''view_name'''', $data) Trong đó, view_name là tên của view, $data chứa các dữ liệu sẽ được hiển thị trong view 1 4 4 3 Controller Controller là những lớp đóng vai trò trung gian giữa view và model Controller nhận các yêu cầu từ phía người dùng, kiểm tra chúng trước khi chuyển qua cho model Sau khi model xử lý yêu cầu và trả dữ liệu về, controller chuyển sang view để hiển thị dữ liệu cho người dùng Trong CodeIgniter, các lớp controller được gán vào segment thứ nhất trong URI Ví d ụ m ộ t l ớ p Controller trong CodeIgniter có c ấ u trúc nh ư sau : class Admin_users extends CI_Controller{ public function index(){ $arUser=$this->user_model->getList(); $this->data[''''arUser'''']=$arUser; $this->load->view("templates/admin/template",$this- >data); } 24 1 4 5 Cách sử dụng URI (URI Routing) - Trong thực tế, URI domain com/index php/product/view/1 lại không thân thiện với các bộ máy tìm kiếm bằng domain com/index php/product/view/appple-ipad-1 - CodeIgniter cho phép lập trình viên có thể thay đổi cơ chế xử lý URL mặc định thông qua chức năng định hướng URI bằng cách thiết lập các quy luật trong tập tin application/config/routes php Tập tin này chứa mảng $route, với khóa là URI mới và giá trị là URI cũ Các quy luật được đọc theo thứ tự từ trên xuống, quy luật trước có độ ưu tiên cao hơn quy luật sau CodeIgniter cho phép sử dụng các ký tự đại diện(wildcard) để thay thế CodeIgniter đã quy định sẵn hai ký tự đại diện:  num tương ứng với các giá trị số  any tương ứng với bất kỳ giá trị nào Ví dụ :  $route[''''lao-dong''''] = ''''Public_staff/index''''  $route[''''lao-dong/page(:num) html''''] = ''''Public_staff/index/$1''''  $route[''''lao-dong/(:any)-(:num) html''''] = ''''public_staff/detail/$2'''' Ta cũng có thể sử dụng biểu thức chính quy (Regular Expression) để thiết lập các quy luật Ví dụ : $route[''''product/([a-z]+)/(\d+)''''] = "$1/id_$2" 1 4 6 Cách sử dụng Form Validation - Thư viện Form Validation của CodeIgniter giúp lập trình viên kiểm tra dữ liệu được gửi lên từ phía người dùng Trong thư viện Form Validation đã xây dựng sẵn một số ràng buộc dữ liệu thường gặp, ta có thể áp dụng vào lập trình một cách dễ dàng Để sử dụng thư viện này, ta khai báo như sau : $this->load->library(''''form_validation''''); 25 - Sau khi khai báo, ta có thể sử dụng các phương thức của thư viện này bằng cách sử dụng đối tượng $this->form_validation 1 4 7 Các hàm trong CodeIgniter Select() Cú pháp : $this->db->select([string $fields = ''''*''''[, boolean $isProtected = TRUE]]); Hàm select() giúp ta chọn những trường cần thiết trong bảng dữ liệu bằng cách truyền vào chuỗi chứa tên trường làm đối số thứ nhất, các trường cách nhau bởi dấu phẩy (,) Nếu không có đối số truyền vào, mặc định sẽ lấy tất cả (tương đương với SELECT *…) Ví dụ: $this->db->select(''''title, content, date''''); $query = $this->db->get(''''mytable''''); Tương ứng: SELECT `title`, `content`, `date` FROM `mytable` From() Cú pháp : $this->db->from(string $tableName) ; Phương thức from() xây dựng câu lệnh FROM, cho phép ta chọn những bảng dữ liệu để truy vấn Ví dụ: $this->db->select(''''title, content, date''''); $this->db->from(''''mytable''''); $query = $this->db->get(); Tương ứng: SELECT title, content, date FROM mytable Join() Cú pháp : $this->db->join(string $tableName, string $condition[, string $nature]); 26 Phương thức join() xây dựng câu lệnh JOIN, cho phép kết hợp các bảng dữ liệu với nhau Phương thức nhận tên bảng cần kết hợp làm đối số thứ nhất và điều kiện liên kết làm đối số thứ hai Ví dụ: $this->db->select(); $this->db->from(''''blogs''''); $this->db->join(''''comments'''', ''''comments id = blogs id''''); $query = $this->db->get(); Tương ứng: SELECT * FROM blogs JOIN comments ON comments id = blogs id Where() Cú pháp : $this->db->where(string $field, string $value) ; Phương thức nhận tên của thuộc tính làm đối số thứ nhất và giá trị của thuộc tính làm đối số thứ hai Nếu phương thức được gọi nhiều lần, các điều kiện sẽ được liên kết với nhau bằng toán tử AND Ví dụ: $name = ‘admin’ ; $this->db->where(‘name’, $name); Tương ứng: WHERE name = ‘admin’ ; Group_by() Cho phép xây dựng câu lệnh GROUP BY Phương thức này nhận tên của trường cần nhóm lại làm đối số thứ nhất Trong trường hợp cần nhóm nhiều trường, ta có thể truyền vào một mảng chứa tên các trường Ví dụ: $this->db->group_by(''''title''''); Tương ứng: GROUP BY title 27 Limit() Phương thức limit() giúp xây dựng câu lệnh LIMIT, nhằm giới hạn số lượng kết quả trả về Phương thức này nhận số kết quả trả về làm đối số thứ nhất, đối số thứ hai thể hiện cột mốc để lấy kết quả Ví dụ: $this->db->limit(10); Tương ứng: LIMIT 10 Insert() Cú pháp : $this->db->insert(string $table, array/object $values); Phương thức insert() giúp chèn một dòng mới vào bảng dữ liệu Phương thức này nhận tên của bảng l{m đối số thứ nhất Đối số thứ hai là một mảng có khóa là tên trường và giá trị của khóa cũng là giá trị cần chèn vào Ví dụ: $data = array( ''''title'''' => ''''My title'''' , ''''name'''' => ''''My Name'''' , ''''date'''' => ''''My date'''' ); $this->db->insert(''''mytable'''', $data); Tương ứng: INSERT INTO mytable (title, name, date) VALUES (''''My title'''', ''''My name'''', ''''My date'''') Update() Cú pháp : $this->db->update(string $table, array/object $data[, array $conditions]); Phương thức update() giúp cập nhật dữ liệu trong bảng Phương thức này nhận tên bảng làm đối số thứ nhất, các dữ liệu cần cập nhật làm 28 đối số thứ hai, đối số thứ ba (tùy chọn) cho phép thiết lập điều kiện để cập nhật dữ liệu Ví dụ: $data = array( ''''product_name'''' => ''''Nike AirMax+ 2009'''', ''''product_price'''' => 160 ); $this->db->update(''''product'''', $data, array(''''product_id'''' => $id)); Tương ứng : UPDATE `tbl_product` SET `product_name` = ''''Nike AirMax+ 2009'''', `product_price` = 160 WHERE `product_id` = {$id} Delete() Cú pháp : $this->db->delete(string $table, array $conditions) ; Phương thức delete() giúp xóa dữ liệu trong bảng Phương thức này nhận tên bảng làm đối số thứ nhất Đối số thứ hai giúp xác định điều kiện những mẩu tin nào sẽ được xóa Ví dụ: $this->db->delete(''''mytable'''', array(''''id'''' => $id)); Tương ứng: DELETE FROM `mytable` WHERE `id` = $id Like() Cú pháp : $this->db->like(string $field, mixed $value[, string $wildcardPlace]); Phương thức like() nhận tên trường cần so sánh làm đối số thứ nhất và giá trị cần so sánh làm đối số thứ hai Đối số thứ ba (tùy chọn) cho phép ta đặt vị trí của ký tự % trong giá trị so sánh Đối số này có 3 giá trị: before (dấu % sẽ được đặt trước giá trị), after (dấu % sẽ được đặt sau giá trị) và both (dấu % sẽ được đặt ở cả hai đầu) Nếu phương thức này được gọi nhiều lần, các điều kiện sẽ được liên kết với nhau bằng lệnh AND Ví dụ: $this->db->like(''''title'''', ''''match''''); 29 $this->db->like(''''body'''', ''''match'''', ''''before''''); Tương ứng: WHERE title LIKE ''''%match%'''' AND body LIKE ''''%match'''' 1 4 8 Kết luận Qua những tìm hiểu trên, ta thấy CodeIgniter là một nền tảng mạnh, cung cấp đầy đủ những thư viện và chức năng cần thiết để xây dựng một ứng dụng web với tốc độ nhanh mà vẫn đảm bảo hiệu năng hệ thống So với các nền tảng khác, CodeIgniter không quá cồng kềnh, không làm lập trình viên giảm đi hứng thú khi sử dụng Ngoài ra, cộng đồng người sử dụng CodeIgniter rất lớn, không ngừng đưa ra những plugin, helper hỗ trợ việc lập trình Dù cho CodeIgniter vẫn còn một số điểm hạn chế, nhưng về cơ bản, có thể nói CodeIgniter đang ngày càng nhận được sự ủng hộ từ phía các lập trình viên PHP Phiên bản 3 x của CodeIgniter đang trong giai đoạn phát triển, hứa hẹn sẽ đem đến những chức năng mới hữu ích và thú vị 30 CHƯƠNG 2 : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2 1 Đặt tả yêu cầu 2 1 1 Các công cụ vẽ, kỹ thuật sử dụng Sử dụng phần mềm Star UML để vẽ biểu đồ 2 1 2 Xác định yêu cầu Hệ thống sẽ bao gồm những chức năng sau:  Quản lý thông tin khách hàng  Quản lí thông tin nhân viên  Quản lí thông tin đơn đặt dịch vụ của khách hàng  Quản lí thông tin dịch vụ  Quản lý tuyển thông tin tuyển dụng  Khách hàng quản lý tin đã đăng 2 1 3 Biểu đồ ca sử dụng (mức hệ thống) Hình 2 1 Bi ể u đồ ca s ử d ụ ng (m ứ c h ệ th ố ng) 31 2 1 4 Đặc tả yêu cầu (ca sử dụng) 2 1 4 1 Ca sử dụng đăng ký Bảng 2 1 Bảng đặt tả Ca sử dụng Đăng ký T ên Use-Case: Đăng ký ID: 3 M ứ c độ quan tr ọ ng: Cao Tác nhân chính:khách hàng Ki ể u Use-Case: Chi tiết, cần thiết Nh ữ ng ng ườ i tham gia và quan tâm: T ấ t c ả m ọ i ng ườ i mu ố n đặ t d ị ch v ụ giúp vi ệ c và xem xem d ị ch v ụ t ạ i website Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc khách hàng muốn đăng ký tài khoản để trở thành thành viên của website và có thể đặt dịch vụ giúp việc tại website Kh ở i s ự : Khách hàng sau khi đăng ký tài khoản và muốn đặt dịch vụ giúp việc tại website Các m ố i quan h ệ : Kết hợp (Association): Khách hàng Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Khách hàng chọn chức năng đăng ký 2 Khách hàng điền đầy đủ thông tin đăng ký và gửi các thông tin đăng ký 3 Hệ thống kiểm tra tính hợp lệ về thông tin đăng ký của khách hàng 4 Hệ thống thêm một hồ sơ đăng ký vào CSDL 5 Hệ thống thông báo kết quả thực hiện đăng ký 6 Chuyển khách hàng về trang đăng nhập của website Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a-1 Nếu thông tin đăng ký không hợp lệ thì hệ thống thông báo yêu cầu khách hàng kiểm tra và đăng ký lại 32 2 1 4 2 Ca sử dụng đặt giúp việc Bảng 2 2 Bảng đặt tả Ca sử dụng Đặt giúp việc Tên UC: UC Đặt giúp việc ID: 2 M ứ c độ quan tr ọ ng: Cao Tác nhân chính: khách hàng Ki ể u Use-Case: Chi tiết, cần thiết Nh ữ ng ng ườ i tham gia và quan tâm: Người quản trị , nhân viên , khách hàng Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc đặt dịch vụ giúp việc của khách hàng tại website Kh ở i s ự : Khách hàng sau khi đăng nhập và muốn đặt dịch vụ giúp việc Các m ố i quan h ệ : Kết hợp (Association): Khách hàng, Nhân viên Bao hàm (Include): Lưu thông tin khách hàng, lưu phiếu đặt dịch vụ giúp việc Mở rộng (Extend): Khách hàng đăng nhập/ đăng ký trên website Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Khách hàng thực hiện chức năng đăng nhập 2 Khách hàng xem và chọn dịch vụ 3 Khách hàng điền đầy đủ thông tin theo form của Website 4 Hệ thống kiểm tra tính hợp lệ về thông tin đặt dịch vụ của khách hàng 5 Hệ thống lưu thông tin khách hàng và lưu phiếu đặt dịch vụ giúp việc vào CSDL 6 Hệ thống thông báo kết quả việc đặt đặt dịch vụ Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a-1 Nếu thông tin khách hàng không hợp lệ thì hệ thống thông báo lỗi 33 2 1 4 3 Ca sử dụng tìm kiếm Bảng 2 3 Bảng đặt tả Ca sử dụng Tìm kiếm T ên Use-Case: UC Tìm kiếm ID: M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Khách hàng, Nhân viên quản lý Ki ể u Use-Case: Chi tiết, cần thiết Nh ữ ng ng ườ i tham gia và quan tâm: Khách hàng , Nhân viên Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc tìm kiếm nhân viên Kh ở i s ự : Ca sử dụng bắt đầu khi người sử dụng sử dụng chức năng tìm kiếm Các m ố i quan h ệ : Kết hợp (Association): Khách hàng,nhân viên quản lý, nhân viên quản trị Mở rộng (Extend): Tìm kiếm thông tin khách hàng, dịch vụ, nhân viên Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Khách hàng chọn chức năng tìm kiếm thông tin sản phẩm 2 Nhân viên chọn chức năng tìm kiếm thông tin  Nhân viên chọn tìm kiếm nhân viên,dịch vụ, khách hàng, thoát, kết thúc Các lu ồ ng s ự ki ệ n con: 1 Khách hàng tìm kiếm thông tin sản phẩm:  Khách hàng nhập thông tin cần tìm  Hệ thống xác định thông tin khách hàng nhập và hiển thị ra màn hình 34 2 Nhân viên tìm kiếm thông tin:  Nhân viên nhập thông tin tìm kiếm về nhân viên, dịch vụ, khách hàng  Hệ thống hiển thị danh sách, khung nhập, tên của nhân viên, dịch vụ khách hàng cần tìm Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : Nếu thông tin tìm kiếm không đúng, hệ thống sẽ hủy chức năng tìm kiếm và quay về trang chủ 2 1 1 4 Ca sử dụng thêm Quản lý CSDL Bảng 2 4 Bảng đặt tả Ca sử dụng Quản lí CSDL Tên UC: UC Quản lí CSDL ID: M ứ c độ quan tr ọ ng: Cao Tác nhân chính: admin Ki ể u Use-Case: Chi tiết, cần thiết Nh ữ ng ng ườ i tham gia và quan tâm: admin Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc quản lí thông tin khách hàng , thông tin đơn đặt dịch vụ, thông tin dịch vụ, quản lí tin tức và thông tin nhân viên Kh ở i s ự : Admin quản lí toàn bộ hoạt động của hệ thống Các m ố i quan h ệ : Kết hợp (Association): Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): 35 Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Người quản lí CSDL quản lí thông tin khách hàng 2 Người quản lí CSDL quản lí thông tin nhân viên 3 Người quản lí CSDL quản llis thông tin đơn dặt dịch vụ của khách hàng 4 Người quản lí CSDL quản lí dịch vụ 5 Người quản lí CSDL quản lí thông tin việc xuất nhập hàng Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : Chỉnh sửa thông tin nếu có thay đổi( trừ thông tin của khách hàng thì người quản trị không có quyền thay đổi) 2 1 4 5 Ca sử dụng thống kê Bảng 2 5 Bảng đặt tả Ca sử dụng Tìm kiếm Tên UC: UC Thống kê ID: M ứ c độ quan tr ọ ng: Cao Tác nhân chính: Nhân viên quản lý Ki ể u Use-Case: Chi tiết, cần thiết Nh ữ ng ng ườ i tham gia và quan tâm: Người quản trị , Nhân viên Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc thống kê đơn đặt dịch vụ, doanh thu, liên hệ, nhân viên, khách hàng và tài khoản khách hàng Kh ở i s ự : Admin cũng như nhân viên có thể thống kê đơn đặt dịch vụ, doanh thu, nhân viên, liên hệ Các m ố i quan h ệ : Kết hợp (Association): Nhân viên quản lý, Người quản trị 36 Mở rộng (Extend): Thống kê khách hàng, doanh thu, đơn đặt dịch vụ, nhân viên, liên hệ Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Admin và nhân viên thống kê lượt đặt dịch vụ 2 Admin và nhân viên thống kê nhân viên 3 Admin và nhân viên thống kê doanh thu 4 Admin và nhân viên thống kê khách hàng Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 2 2 Thiết kế phần mềm 2 2 1 Các công cụ, kỹ thuật sử dụng StarUML là một mô hình nền tảng, là phần mềm hỗ trợ UML (Unified Modeling Language) Tích cực hỗ trợ các phương pháp tiếp cận MDA (Model Driven Architecture) bằng cách hỗ trợ các khái niệm hồ sơ UML StarUML vượt trội trong việc tùy biến môi trường của người dùng và có khả năng mở rộng cao trong chức năng của nó dùng StarUML, một trong các công cụ mô hình hóa phần mềm hàng đầu, sẽ đảm bảo tối đa hóa năng suất và chất lượng của các dự án phần mềm của bạn 37 2 2 2 Thiết kế các tương tác 2 2 2 1 Biểu đồ tuần tự cho ca sử dụng Đăng nhập Hình 2 2 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đă ng nh ậ p 38 2 2 2 2 Biểu đồ tuần tự cho ca sử dụng đăng ký Hình 2 3 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đă ng ký 2 2 2 3 Biểu đồ tuần tự cho ca sử dụng đặt dịch vụ Hình 2 4 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đặ t d ị ch v ụ 39 2 2 2 4 Biểu đồ tuần tự cho ca sử dụng tìm kiếm Hình 2 5 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng tìm ki ế m 2 2 3 Thiết kế các lớp 2 2 3 1 Xác định các lớp biên - Lớp biên là các lớp nhằm chuyển đổi thông tin giao tiếp giữa các tác nhân và hệ thống Đó chính là các giao diện để tác nhân giao tiếp với hệ thống, cho phép thu thập thông tin hay xuất các kết quả Mỗi cặp tác nhân-ca sử dụng có ít nhất 01 lớp biên - Dựa vào các ca sử dụng đã được xây dựng ở trên, hệ thống có các lớp biên như sau:  Đối với ca sử dụng đăng nhập: I_TV_DN: giao diện cho phép thành viên nhập vào các thông tin đăng nhập hệ thống 40  Đối với ca sử dụng đăng ký: I_TV_DKTV: giao diện cho phép người dùng nhập thông tin để đăng ký thành viên của website  Đối với ca sử dụng đặt dịch vụ: I_NSD_DH: giao diện cho phép thành viên xem và chọn dịch vụ muốn đặt  Đối với ca sử dụng tìm kiếm người giúp việc: Lớp I_NSD_TKDV: giao diện cho phép tác nhân người sử dụng tìm kiếm người giúp việc  Đối với ca sử dụng tìm kiếm nhân viên: Lớp I_NSD_TKNV: giao diện cho phép tác nhân quản trị viên tìm kiếm thông tin của nhân viên  Đối với ca sử dụng tìm kiếm khách hàng: Lớp I_NSD_TKKH: giao diện cho phép tác nhân quản trị viên tìm kiếm thông tin của khách hàng  Đối với ca sử dụng xem thông tin cá nhân: Lớp I_NSD_XTT: giao diện cho phép tác nhân quản trị viên xem thông tin cá nhân  Đối với ca sử dụng sửa thông tin cá nhân : Lớp I_NSD_SuaTT: giao diện cho phép tác nhân quản trị viên sửa thông tin cá nhân  Đối với ca sử dụng kiểm tra đơn đặt dịch vụ : Lớp I_QL_KTĐDV: giao diện cho phép tác nhân quản lý kiểm tra đơn đặt dịch vụ  Đối với ca sử dụng thêm dịch vụ : Lớp I_QL_TDV: giao diện cho phép tác nhân quản lý thêm dịch vụ 41  Đối với ca sử dụng thêm tin: Lớp I_QL_TT: giao diện cho phép tác nhân quản lý thêm tin  Đối với ca sử dụng sửa tin: Lớp I_QL_ST: giao diện cho phép tác nhân quản lý sửa tin  Đối với ca sử dụng xóa tin: Lớp I_QL_XT: giao diện cho phép tác nhân quản lý xóa tin  Đối với ca sử dụng thống kê: Lớp I_QL_TK: giao diện cho phép tác nhân quản lý thống kê đơn đặt dịch vụ, doanh thu Hệ thống thống kê liên hệ, nhân viên, khách hàng 2 2 3 2 Xác định các lớp điều khiển Lớp điều khiển là các lớp điều hành sự diễn biến trong một ca sử dụng Các lớp điều khiển chứa các quy tắc nghiệp vụ và đứng trung gian giữa lớp biên và lớp thực thể, cho phép từ màn hình có thể truy xuất được các thông tin chứa trong các lớp thực thể Mỗi ca sử dụng có ít nhất một lớp điều khiển Các lớp điều khiển chính của hệ thống: Lớp C_NSD_DK: lớp điều khiển cho ca sử dụng đăng ký thành viên Lớp C_NSD_DN: lớp điều khiển cho ca sử dụng đăng nhập hệ thống Lớp C_NSD_ĐDV: lớp điều khiển cho ca sử dụng đặt dịch vụ Lớp C_NSD_XTTCN: lớp điều khiển cho ca sử dụng Xem thông tin cá nhân Lớp C_TV_STTCN: lớp điều khiển cho ca sử dụng Sửa thông tin cá nhân Lớp C_QL_KTĐDV: lớp điều khiển cho ca sử dụng Kiểm tra đơn đặt dịch vụ Lớp C_QL_XDV: lớp điều khiển cho ca sử dụng Xóa dịch vụ Lớp C_QL_SDV: lớp điều khiển cho ca sử dụng Sửa dịch vụ 42 Lớp C_NSD_TDV: lớp điều khiển cho ca sử dụng Thêm dịch vụ Lớp C_NSD_TKDV: lớp điều khiển cho ca sử dụng Tìm kiếm người giúp việc Lớp C_NSD_TKKH: lớp điều khiển cho ca sử dụng Tìm kiếm khách hàng Lớp C_QL_TT: lớp điều khiển cho ca sử dụng Thêm tin Lớp C_QL_ST: lớp điều khiển cho ca sử dụng Sửa tin Lớp C_QL_XT: lớp điều khiển cho ca sử dụng Xóa tin Lớp C_QL_TK: lớp điều khiển cho ca sử dụng Thống kê tổng số nhân viên, liên hệ , doanh thu, số lượng khách hàng 2 2 3 3 Xác định các lớp thực thể Lớp Tài khoản ( TaiKhoan ) gồm các thuộc tính:  Idtk: Id tài khoản  Hoten: Họ và tên thành viên  Email: email của bạn (Tên tài khoản đăng nhập)  Sdt: Số điện thoại của thành viên  Matkhau: Mật khẩu đăng nhập vào tài khoản  Diachi: địa chỉ liên lạc Lớp Quản trị (users) gồm các thuộc tính  Idtk: Id User  Username: Tên đăng nhập  Password : Mật khẩu đăng nhập  Fullname: Họ và tên đầy đủ  Email: Địa chỉ Email  Phone: Số điện thoại  Gioitinh: Giới tính 43 Lớp Dịch vụ gồm các thuộc tính  Id_sevice: Id dịch vụ  Name_sevice: Tên dịch vụ  Preview_text : Mô tả dịch vụ  Detail_text : Chi tiết dịch vụ  Ud_sevice : Ưu điểm của dịch vụ  Images : Ảnh dịch vụ  Active : Trạng thái Lớp Nhân viên gồm các thuộc tính  Id_staff: Id nhân viên  Ten_staff: Tên nhân viên  Lht_ staff: Lương hiện tại  Lmm_ staff: Lương mong muốn  Quequan: Quê quán  Tongiao : Tôn giáo  Chieucao : Chiều cao  Knlv : Kinh nghiệm làm việc  Hcgd : Hoàn cảnh gia đình  Knlv : Kỹ năng làm việc  Sdt : Số điện thoại  Images: Ảnh đại diện  Vietxu : Số xu của nhân viên  Gioitinh : Giới tính  Cangnang : Cân nặng  Active : Trạng thái 44 Lớp đánh giá nhân viên (review) gồm các thuộc tính  Id_review: Id đánh giá  Content : Nội dung đánh giá  Id_staff : Id nhân viên  Id_taikhoan : Id tài khoản  Qty : Điểm đánh giá Lớp Tuyển dụng nhân viên gồm các thuộc tính  Id_recruitment : Id tuyển dụng  Name : Tên tuyển dụng  Preview_text: Mô tả  Detail_text : Chi tiết  Date_posted : Ngày đăng  Active : Trạng thái  Author : Tác giả  Images : Ảnh đại diện  Slug : Tạo link thân thiện cho người dùng Lớp New gồm các thuộc tính sau  Id_news : Id tin  Name : Tên tin  Id_cat : Id danh mục tin  Preview_text: Mô tả  Detail_text : Chi tiết  Active : Trạng thái  Date_posted : Ngày đăng  Author : Tác giả  Picture : Ảnh đại diện 45  Slug : Tạo link thân thiện cho người dùng  Id_tk : Id tài khoản Lớp giới thiệu gồm các thuộc tính sau  Id_introduce : Id giới thiệu  Name : Tên giới thiệu  Detail_introduce : Chi tiết  Active : Trạng thái Lớp Khách hàng gồm các thuộc tính sau  Id_customer : Id khách hàng  Name : Tên khách hàng  Phone : Số điện thoại  Address : Địa chỉ  Email : Email của khách hàng  Data : Thời gian khách hàng đặt dịch vụ  Id_staff : Id nhân viên Lớp Liên hệ gồm các thuộc tính sau  Id_contact : Id liên hệ  Fullname : Họ tên người liên hệ  Email : Email  Address : Địa chỉ  Phone : Số điện thoại  Content : Nội dung liên hệ  Active : Trạng thái Lớp Bình luận gồm các thuộc tính sau  Id_comment : Id bình luận  Content : Nội dung bình luận 46  Id_staff : Id nhân viên  Date : Ngày bình luận  Id_tk : Id tài khoản Lớp Danh mục gồm các thuộc tính sau  Id_cat : Id danh mục  Name : Tên danh mục  Active : Trạng thái 2 2 3 4 Xây dựng thẻ CRC của các lớp thực thể Bảng 2 6 Thẻ CRC lớp Staff Front: Tên lớp: Staff ID: 1 Mô tả: Lưu trữ thông tin chi tiết của nhóm nhân viên giúp việc Các Ca sử dụng kết hợp: QL thông tin và tìm kiếm nhân viên Trách nhiệm Hiển thị thông tin Nhân viên Cập nhật thông tin Nhân viên Lớp cộng tác Customer Back: Thuộc tính:  Id: Id nhân viên  Name : Tên nhân viên  Quequan: Quê quán  Images: Ảnh đại diện  Slug: Tạo link thân thiện cho người dùng  Kinang: Kĩ năng  Mối quan hệ: - Generalization: - Aggregation: Customer - Other associations: 47 Bảng 2 7 Thẻ CRC lớp Category Front: Tên lớp: Category ID: 2 Mô tả: Lưu trữ danh mục tin Các Ca sử dụng kết hợp: QL thông tin danh mục, tìm kiếm nhóm tin theo danh mục Trách nhiệm Hiển thị thông tin Nhóm tin theo danh mục Cập nhật danh mục , tin Lớp cộng tác News Back: Thuộc tính:  Id_cat: Id của danh mục  Name: tên danh mục  Active : Trạng thái - Generalization: - Aggregation: News - Other associations: 48 Bảng 2 8 Thẻ CRC lớp Customer Front: Tên lớp: Customer ID: 3 Mô tả: Lưu trữ thông tin chi tiết của khách hàng Các Ca sử dụng kết hợp: QL thông tin khách hàng , tìm khách hàng Trách nhiệm Hiển thị thông tin Khách hàng Cập nhật thông tin Khách hàng Lớp cộng tác Staff Back: Thuộc tính:  Id_customer : Id khách hàng  Name: Tên khách hàng  Sdt : Số điện thoại khách hàng  Id_staff : Id nhân viên - Generalization: - Aggregation: Staff - Other associations: 49 2 2 3 5 Biểu đồ lớp của hệ thống Hình 2 6 Bi ể u đồ l ớ p c ủ a h ệ th ố ng 50 2 2 4 Thiết kế cơ sở dữ liệu 2 2 4 1 Biểu đồ mô hình quan hệ Hình 2 7 Bi ể u đồ mô hình quan h ệ 51 2 2 4 2 Mô tả các bảng Bảng 2 9 Bảng Staff Tên bảng : Staff Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id nhân viên Name String 255 Tên nhân viên Lht Float Lương hiện tại Năm sinh Date Năm sinh Images String 255 Ảnh đại diện Gioitinh String Giới tính Phone String 12 Số điện thoại Vietxu Integer Xu của nhân viên Active Integer 1 Trạng thái Knlv String 255 Kinh nghiệm làm việc Kinang String 255 Kĩ năng 52 Bảng 2 10 Bảng Category Tên bảng : Category Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id danh mục tin Name String 255 Tên danh mục tin Active Integer 1 Trạng thái Bảng 2 11 Bảng Comment Tên bảng : Comment Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id comment Content String 255 Nội dung Date Date Ngày comment FK Id_tk Integer Id tài khoản 53 Bảng 2 12 Bảng Contact Tên bảng : Contact Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id liên hệ Fullname String 50 Họ tên người liên hệ Email String 50 Email Address String 50 Địa chỉ Content String 255 Nội dung Phone String 12 Số điện thoại Active Interger 1 Trạng thái Bảng 2 13 Bảng Customer Tên bảng : Customer Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id khách hàng Name String 50 Họ tên khách hàng Phone String 50 Số điện thoại Address String 50 Địa chỉ PK Id_staff Integer Id nhân viên Datelienhe Date Ngày liên hệ 54 Bảng 2 14 Bảng News Tên bảng : News Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id news Name String 50 Tên tin Preview_text String 255 Mô tả Detail_text String 255 Chi tiết FK Id_cat Integer Id danh mục tin Images String 255 Ảnh đại diện Active Integer 1 Trạng thái Author String 255 Tác giả Id_taikhoan Integer Id tài khoản Slug String 255 Chuẩn hoá đường link url của website Dateposted Date Ngày đăng 55 Bảng 2 15 Bảng Recruitment Tên bảng : Recruitment Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id Integer Id tuyển dụng Name String 50 Tên tin tuyển dụng Preview_text String 255 Mô tả Detail_text String 255 Chi tiết Id_cat Integer Id danh mục tin Images String 255 Ảnh đại diện Active Integer 1 Trạng thái Author String 255 Tác giả Id_taikhoan Integer Id tài khoản Slug String 255 Chuẩn hoá

NỘI DUNG NGHIÊN CỨU

- PHP viết tắt hồi quy của "Hypertext Preprocessor", là một ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm sinh ra mã html trên client PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ ràng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng

- PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL

- Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt

- MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu

1.1.2 Cú pháp PHP cơ bản

- Một mã nguồn PHP có thể đặt bất cứ nơi nào trong tài liệu Mã nguồn PHP được bắt đầu bằng

- Tập tin mặc định của ngôn ngữ PHP có đuôi mỡ rộng là “.php”

- Một file PHP thông thường chứa các thẻ HTML, và một số mã kịch bản PHP.

CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI

Tổng quan về PHP

- PHP viết tắt hồi quy của "Hypertext Preprocessor", là một ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm sinh ra mã html trên client PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ ràng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng

- PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL

- Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt

- MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu

1.1.2 Cú pháp PHP cơ bản

- Một mã nguồn PHP có thể đặt bất cứ nơi nào trong tài liệu Mã nguồn PHP được bắt đầu bằng

- Tập tin mặc định của ngôn ngữ PHP có đuôi mỡ rộng là “.php”

- Một file PHP thông thường chứa các thẻ HTML, và một số mã kịch bản PHP

- Dưới đây, chúng ta có một ví dụ về một tập tin PHP đơn giản, với một kịch bản PHP có sử dụng một chức năng được xây dựng trong PHP là lệnh

Lưu ý: kết thúc một dòng lệnh PHP bằng một dấu chấm phẩy (;)

Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine để thông dịch dịch trang PHP và trả kết quả cho người dùng như hình bên dưới

Hình 1.1: Ho ạ t độ ng Client và Server

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

- MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải MySQL về từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho cá 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,…

1.2.2 Một số đặc điểm của MySQL

- MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft)

- MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu

- MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (username) và mật khẩu tương ứng để truy xuất đến CSDL

Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó Nếu không, chúng ta sẽ không làm được gì cả giống như quyền chứng thực người dùng trong SQL Server vậy

- Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có

- Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn

- Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức

- Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại Bạn cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft)

- Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời Bạn có thể truy cập MySQL tương tác với sử dụng một vài giao diện để bạn có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web…

- Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được

- Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2 MySQL chạy được với mọi phần cứng từ các máy PC ở nhà cho đến các máy server

- Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó Nếu bạn không thích một vài cái, bạn có thể thay đổi nó

- Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ Cộng đồng MySQL rất có trách nhiệm Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet

1.2.3 Hướng dẫn cài đặt Xampp

Bước 1 : Download XAMPP tại https://www.apachefriends.org/download.html và tiến hành cài đặt như các chương trình thông thường

Bước 2 : Sau khi tải file cài đặt về xong, hãy chạy nó, sau đó chọn Next

Hình 1.2 H ướ ng d ẫ n cài đặ t xampp(1) Ở phần chọn đường dẫn, bạn hãy chọn đường dẫn cần lưu cài đặt của XAMPP Lưu ý rằng đường dẫn này bạn phải nhớ vì khi cài đặt web lên

9 localhost, bạn phải truy cập vào thư mục này Bạn nên để mặc định là c:\xampp Tiếp tục ấn Next

Hình 1.3 H ướ ng d ẫ n cài đặ t xampp(2) Ở trang kế tiếp, bạn bỏ chọn phần “Learn more about Bitnami for XAMPP“ Và ấn Next 2 lần nữa để bắt đầu quá trình cài đặt XAMPP

Hình 1.4 H ướ ng d ẫ n cài đặ t xampp(3)

Sau khi cài xong, ấn nút Finish để kết thúc cài đặt và mở bảng điều khiển của XAMPP Tuy nhiên, hãy khởi động lại máy sau khi cài đặt xong để tránh tình trạng không khởi động được localhost

Start Apache và MySQL trong XAMPP control panel

Hình 1.5 H ướ ng d ẫ n cài đặ t xampp(4)

Tổng quan về Framework Codeigniter

CodeIgniter là một trong những PHP framework phổ biến nhất trong những năm trở lại đây Nó được xây dựng với tiêu chí: phát triển ứng dụng nhanh, đơn giản và sáng sủa Phiên bản chính thức đầu tiên của CodeIgniter được công bố ngày 28/02/2006, cho đến nay phiên bản hiện tại là V 3.x.Ý tưởng xây dựng CodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng dụng web được viết bằng ngôn ngữ Ruby Hiện tại CodeIgniter đang được phát triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc CodeIgniter cũng như nhiều PHP framework khác sử dụng mô hình MVC

1.3.2 Tính năng và ưu điểm Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation) và xử lý (business logic) của một phần mềm thành những thành phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảo trì

Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User

Guide) So với các PHP framework khác như CakePHP (1.3MB),

Symfony (5.08MB) hay Zend Framework (5.66MB)…kích thước của

CodeIgniter giúp giảm thiểu đáng kể không gian lưu trữ

Tốc độ nhanh: CodeIgniter được đánh giá là PHP framework có tốc độ nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang

Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mở rộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn

Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất thân thiện với các robot tìm kiếm

Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật…

Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và SQL Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống

Chưa hỗ trợ Object-Relational Mapping: Object Relational Mapping

(ORM) là một kỹ thuật lập trình, trong đó các bảng của cơ sở dữ liệu được ánh xạ thành các đối tượng trong chương trình Kỹ thuật này giúp cho việc thực hiện các thao tác trong cơ sở dữ liệu (Create Read Update Delate – CRUD) dễ dàng, mã nguồn ngắn gọn hơn Hiện tại, CodeIgniter vẫn chưa hỗ trợ ORM

Chưa hỗ trợ AJAX: AJAX (Asynchronous JavaScript and XML) đã trở thành một phần không thể thiếu trong bất kỳ ứng dụng Web nào AJAX giúp nâng cao tính tương tác giữa người dùng và hệ thống, giúp cho người dùng có cảm giác như đang sử dụng ứng dụng desktop vì các thao tác đều

15 diễn ra “tức thời” Hiện tại, CodeIgniter vẫn chưa có thư viện dựng sẵn nào để hỗ trợ xây dựng ứng dụng AJAX Lập trình viên phải sử dụng các thư viện bên ngoài, như jQuery, Script.aculo.us, Prototype hay Mootools…

Chưa hỗ trợ một số module thông dụng: So sánh với framework khác, CodeIgniter không có các module thực thi một số tác vụ thường gặp trong quá trình xây dựng ứng dụng web như Chứng thực người dùng (User Authorization), trình phân tích RSS (RSS Parser) hay Trình xử lý PDF…

Chưa hỗ trợ Event-Driven Programming: Event-Driven

Programming (EDP) lf một nguyên lý lập trình, trong đó các luồng xử lý của hệ thống sẽ dựa vào các sự kiện, chẳng hạn như click chuột, gõ bàn phím…Đây không phải là một khuyết điểm to lớn của CodeIgniter vì hiện tại, chỉ có một số ít framework hỗ trợ EDP, bao gồm Prado, QPHP và Yii

1.3.4.1 Yêu cầu của hệ thông

CodeIgniter có thể hoạt động trên nhiều hệ điều hành và server, yêu cầu có cài đặt PHP phiên bản 4.x hoặc cao hơn, hệ quản trị cơ sở dữ liệu: MySQL (4.1+), MySQLi, Mircrosoft SQL Server, Postgres, Oracle, SQLite, và ODBC

- Framework CodeIgniter các bạn có thể trực tiếp tải tại trang chủ theo link: https:// codeigniter.com /download bạn sẽ cài đặt phiên bản mới nhất của Ellislab cung cấp

- Bạn giải nén toàn bộ file CodeIgniter 3.X vừa tải về từ phần số 1 vào thư mục htdocs của xampp đã cài đặt khi tải về

- Bạn quan tâm tới thư mục application

Hình 1.10: Th ư m ụ c trong file application

- Trong thư mục application bạn quan tâm tới thư mục config mở thư mục này ra bạn sẽ thấy trong thư mục config cần chú ý hai file config.php và database.php, hai file php này chúng ta sẽ chỉnh sửa để cài CodeIgniter

Hình 1.11: Th ư m ụ c trong file config

- Bạn click mở và chỉnh sửa file config.php như sau:

- Chỉnh sửa hai dòng code : $config['base_url'] = ‘’ ;

Ví dụ : $config['base_url']= ‘http://thuegiupviec:8080/’

$config['index_page'] = ''" Để trống nếu bạn muốn xóa bỏ index trong index.php trong CodeIgniter

- Tiếp theo bạn click mở và chỉnh sửa file database.php như sau :

$db['default']['database'] = ‘tên database của bạn’

- Tới đây bạn đã cài đặt xong CodeIgniter phiên bản mới nhất, bây giờ bạn có thể chạy website của bạn trên localhost và viết các ứng dụng của riêng bạn rồi.

Phát triển website trên nền tảng Framework CodeIgniter

1.4.1 Tổng quan về mô hình MVC

- Model-View-Control (MVC) là một kiến trúc phần mềm, hiện đang được xem là một mẫu thiết kế trong công nghệ phần mềm Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao diện, cho phép phát triển, kiểm tra và bảo trì các thành phần một cách độc lập

- Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần View (mã HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web Thành phần Controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này, sau đó chuyển sang Model xử lý

1.4.2 Mô hình MVC trong Framework CodeIgniter

Model thể hiện các cấu trúc dữ liệu Các lớp thuộc thành phần Model thường thực hiện các tác vụ như truy vấn, thêm, xóa, cập nhật dữ liệu Khi dữ liệu trong Model thay đổi, thành phần View sẽ được cập nhật lại

View 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 sử dụng Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau

Controller đóng vai trò trung gian giữa Model và View Thông tin người dùng từ View được gửi cho Controller xử lý, sau đó Controller tương tác với Model để lấy dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho View

1.4.3 Framework CodeIgniter trong xây dựng website với mô hình MVC 1.4.3.1 Cấu trúc CodeIgniter

Hình 1.15: C ấ u trúc th ư m ụ c trong CodeIgniter

Tập tin index.php được xem như controller đầu vào, tiếp nhận các yêu cầu từ phía client và chuyển các yêu cầu này cho hệ thống

Thư mục user_guide chứa tài liệu hướng dẫn, bạn có thể xóa đi

Thư mục system bao gồm phần lõi của CodeIgniter Chúng bao gồm các thư viện xây dựng sẵn, các tập tin ngôn ngữ, ghi chú về hệ thống Trong số đó, các thư mục sau khá quan trọng:

 Thư mục application: Dành cho lập trình viên, các tập tin được lập trình cho ứng dụng sẽ lưu trong thư mục này

 Thư mục helpers: Chứa các hàm hỗ trợ cho lập trình viên khi viết ứng dụng

 Thư mục libraries: Chứa các thư viện dựng sẵn của CodeIgniter

 Bên trong thư mục application có cấu trúc như sau :

Hình 1.16: C ấ u trúc th ư m ụ c trong file application

+ Thư mục config: Chứa các tập tin cấu hình hệ thống

+ Thư mục hooks: chứa các tập tin để mở rộng mã nguồn CodeIgniter + Thư mục language: chứa các tập tin ngôn ngữ

+ Thư mục controllers: chứa các lớp controller do lập trình viên tạo ra + Thư mục helpers: chứa các hàm tiện ích do người dùng định nghĩa + Thư mục libraries: chứa các thư viện cho người dùng định nghĩa + Thư mục models: chứa các lớp model

+ Thư mục views: chứa các lớp view

1.4.3.2 Dòng chảy dữ liệu trong CodeIgniter

Hình 1.17: Dòng ch ả y d ữ li ệ u trong CodeIgniter

Tập tin index.php: đóng vai trò làm controller đầu vào, thiết lập các tài nguyên cần thiết cho hệ thống

Routing: Quá trình điều hướng giúp xác định các yêu cầu và hướng xử lý đối với chúng

Caching: Nếu dữ liệu được yêu cầu đã được lưu trong bộ đệm,

CodeIgniter sẽ trả dữ liệu trong bộ đệm về phía client Quá trình xử lý kết thúc

Security: Dữ liệu trước khi được chuyển đến các Controller sẽ được lọc để phòng chống XXS hoặc SQL Injection

Application Controller: Controller xử lý dữ liệu nhận được bằng cách gọi đến các Models, Libraries, Helpers, Plugins…có liên quan

View: Dữ liệu được chuyển qua View để hiển thị cho người dùng Nếu chức năng caching được bật, dữ liệu sẽ được lưu trong cache cho những lần yêu cầu tiếp theo

1.4.4 Cách sử dụng Model, View và Controller trong CodeIgniter

Model là những lớp được xây dựng nhằm thực hiện việc trao đổi thông tin với cơ sở dữ liệu Một lớp Model có thể thực hiện các tác vụ truy vấn, thêm, xóa, cập nhật dữ liệu Trong CodeIgniter, việc khai báo các lớp model dành cho một thực thể nào đó là không cần thiết, vì trong controller của

22 thực thể đó, ta có thể gọi đến thư viện database để thực hiện các thao tác với cơ sở dữ liệu Tuy nhiên, để tiện cho việc quản lý, xây dựng lớp model cho một thực thể được khuyến khích

Ví d ụ m ộ t l ớ p model trong CodeIgniter có c ấ u trúc nh ư sau : class taikhoan_model extends CI_model{ public function construct(){ parent :: construct();

$this->db->order_by('id_tk', 'DESC');

$arTaikhoan = $query->result_array(); return $arTaikhoan;

Khi khai báo m ộ t l ớ p model, ta c ầ n tuân theo m ộ t s ố quy t ắ c :

 Tên lớp được viết hoa chữ đầu tiên, phần còn lại viết thường

Ví dụ: User_model, Blog_model, Article_model…

 Tên tập tin được đặt như tên lớp, và được đặt trong thư mục application/models/ Các thư mục có thể được lưu lồng vào nhau để thuận tiện cho việc quản lý

Ví dụ: application/models/user_model.php

 Bắt buộc phải kế thừa từ lớp Model Trong hàm tạo của lớp con, phải gọi đến hàm tạo của lớp cha

 Để sử dụng được model, ta sử dụng đoạn mã sau: $this->load-

- View là những tập tin HTML được xây dựng nhằm 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 có thể là một trang web hoàn chỉnh, hay chỉ là một phần của trang web (header, footer, sidebar…) Nội dung của tập tin view, ngoài mã HTML còn có thể chứa mã PHP View không bao giờ được gọi trực tiếp mà phải thông qua controller

- Để sử dụng view trong controller, ta sử dụng đoạn mã sau :

$this->load->view('view_name', $data) Trong đó, view_name là tên của view, $data chứa các dữ liệu sẽ được hiển thị trong view

Controller là những lớp đóng vai trò trung gian giữa view và model Controller nhận các yêu cầu từ phía người dùng, kiểm tra chúng trước khi chuyển qua cho model Sau khi model xử lý yêu cầu và trả dữ liệu về, controller chuyển sang view để hiển thị dữ liệu cho người dùng Trong CodeIgniter, các lớp controller được gán vào segment thứ nhất trong URI

Ví d ụ m ộ t l ớ p Controller trong CodeIgniter có c ấ u trúc nh ư sau : class Admin_users extends CI_Controller{ public function index(){

$arUser=$this->user_model->getList();

$this->load->view("templates/admin/template",$this-

1.4.5 Cách sử dụng URI (URI Routing)

- Trong thực tế, URI domain.com/index.php/product/view/1 lại không thân thiện với các bộ máy tìm kiếm bằng domain.com/index.php/product/view/appple-ipad-1

- CodeIgniter cho phép lập trình viên có thể thay đổi cơ chế xử lý URL mặc định thông qua chức năng định hướng URI bằng cách thiết lập các quy luật trong tập tin application/config/routes.php Tập tin này chứa mảng

$route, với khóa là URI mới và giá trị là URI cũ Các quy luật được đọc theo thứ tự từ trên xuống, quy luật trước có độ ưu tiên cao hơn quy luật sau CodeIgniter cho phép sử dụng các ký tự đại diện(wildcard) để thay thế CodeIgniter đã quy định sẵn hai ký tự đại diện:

 num tương ứng với các giá trị số

 any tương ứng với bất kỳ giá trị nào

 $route['lao-dong'] = 'Public_staff/index'

 $route['lao-dong/page(:num).html'] = 'Public_staff/index/$1'

 $route['lao-dong/(:any)-(:num).html'] = 'public_staff/detail/$2'

Ta cũng có thể sử dụng biểu thức chính quy (Regular Expression) để thiết lập các quy luật

Ví dụ : $route['product/([a-z]+)/(\d+)'] = "$1/id_$2"

1.4.6 Cách sử dụng Form Validation

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Đặt tả yêu cầu

2.1.1 Các công cụ vẽ, kỹ thuật sử dụng

Sử dụng phần mềm Star UML để vẽ biểu đồ

Hệ thống sẽ bao gồm những chức năng sau:

 Quản lý thông tin khách hàng

 Quản lí thông tin nhân viên

 Quản lí thông tin đơn đặt dịch vụ của khách hàng

 Quản lí thông tin dịch vụ

 Quản lý tuyển thông tin tuyển dụng

 Khách hàng quản lý tin đã đăng

2.1.3 Biểu đồ ca sử dụng (mức hệ thống)

Hình 2.1 Bi ể u đồ ca s ử d ụ ng (m ứ c h ệ th ố ng)

2.1.4 Đặc tả yêu cầu (ca sử dụng)

2.1.4.1 Ca sử dụng đăng ký

Bảng 2.1 Bảng đặt tả Ca sử dụng Đăng ký

Tên Use-Case: Đăng ký ID: 3 Mức độ quan trọng: Cao

Tác nhân chính:khách hàng Kiểu Use-Case: Chi tiết, cần thiết

Những người tham gia và quan tâm: Tất cả mọi người muốn đặt dịch vụ giúp việc và xem xem dịch vụ tại website

Ca sử dụng mô tả việc khách hàng muốn đăng ký tài khoản để trở thành thành viên của website và có thể đặt dịch vụ giúp việc tại website

Khởi sự: Khách hàng sau khi đăng ký tài khoản và muốn đặt dịch vụ giúp việc tại website

Kết hợp (Association): Khách hàng

Các luồng sự kiện thông thường:

1 Khách hàng chọn chức năng đăng ký

2 Khách hàng điền đầy đủ thông tin đăng ký và gửi các thông tin đăng ký

3 Hệ thống kiểm tra tính hợp lệ về thông tin đăng ký của khách hàng

4 Hệ thống thêm một hồ sơ đăng ký vào CSDL

5 Hệ thống thông báo kết quả thực hiện đăng ký

6 Chuyển khách hàng về trang đăng nhập của website

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

3a-1 Nếu thông tin đăng ký không hợp lệ thì hệ thống thông báo yêu cầu khách hàng kiểm tra và đăng ký lại

2.1.4.2 Ca sử dụng đặt giúp việc

Bảng 2.2 Bảng đặt tả Ca sử dụng Đặt giúp việc

Tên UC: UC Đặt giúp việc ID: 2 Mức độ quan trọng: Cao

Tác nhân chính: khách hàng Kiểu Use-Case: Chi tiết, cần thiết

Những người tham gia và quan tâm:Người quản trị , nhân viên , khách hàng

Ca sử dụng mô tả việc đặt dịch vụ giúp việc của khách hàng tại website

Khách hàng sau khi đăng nhập và muốn đặt dịch vụ giúp việc

Kết hợp (Association): Khách hàng, Nhân viên

Bao hàm (Include): Lưu thông tin khách hàng, lưu phiếu đặt dịch vụ giúp việc

Mở rộng (Extend): Khách hàng đăng nhập/ đăng ký trên website

Các luồng sự kiện thông thường:

1 Khách hàng thực hiện chức năng đăng nhập

2 Khách hàng xem và chọn dịch vụ

3 Khách hàng điền đầy đủ thông tin theo form của Website

4 Hệ thống kiểm tra tính hợp lệ về thông tin đặt dịch vụ của khách hàng.

5 Hệ thống lưu thông tin khách hàng và lưu phiếu đặt dịch vụ giúp việc vào CSDL

6 Hệ thống thông báo kết quả việc đặt đặt dịch vụ

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

3a-1 Nếu thông tin khách hàng không hợp lệ thì hệ thống thông báo lỗi

2.1.4.3 Ca sử dụng tìm kiếm

Bảng 2.3 Bảng đặt tả Ca sử dụng Tìm kiếm

Tên Use-Case: UC Tìm kiếm ID: Mức độ quan trọng: Bình thường

Khách hàng, Nhân viên quản lý

Kiểu Use-Case: Chi tiết, cần thiết

Những người tham gia và quan tâm:

Ca sử dụng mô tả việc tìm kiếm nhân viên

Ca sử dụng bắt đầu khi người sử dụng sử dụng chức năng tìm kiếm

Kết hợp (Association): Khách hàng,nhân viên quản lý, nhân viên quản trị.

Mở rộng (Extend): Tìm kiếm thông tin khách hàng, dịch vụ, nhân viên

Các luồng sự kiện thông thường:

1 Khách hàng chọn chức năng tìm kiếm thông tin sản phẩm

2 Nhân viên chọn chức năng tìm kiếm thông tin

 Nhân viên chọn tìm kiếm nhân viên,dịch vụ, khách hàng, thoát, kết thúc

Các luồng sự kiện con:

1 Khách hàng tìm kiếm thông tin sản phẩm:

 Khách hàng nhập thông tin cần tìm

 Hệ thống xác định thông tin khách hàng nhập và hiển thị ra màn hình

2 Nhân viên tìm kiếm thông tin:

 Nhân viên nhập thông tin tìm kiếm về nhân viên, dịch vụ, khách hàng

 Hệ thống hiển thị danh sách, khung nhập, tên của nhân viên, dịch vụ khách hàng cần tìm

Các luồng sự kiện thay thế/ngoại lệ:

Nếu thông tin tìm kiếm không đúng, hệ thống sẽ hủy chức năng tìm kiếm và quay về trang chủ

2.1.1.4 Ca sử dụng thêm Quản lý CSDL

Bảng 2.4 Bảng đặt tả Ca sử dụng Quản lí CSDL

Tên UC: UC Quản lí CSDL ID: Mức độ quan trọng: Cao

Tác nhân chính: admin Kiểu Use-Case: Chi tiết, cần thiết

Những người tham gia và quan tâm: admin

Ca sử dụng mô tả việc quản lí thông tin khách hàng , thông tin đơn đặt dịch vụ, thông tin dịch vụ, quản lí tin tức và thông tin nhân viên

Admin quản lí toàn bộ hoạt động của hệ thống

Các luồng sự kiện thông thường:

1 Người quản lí CSDL quản lí thông tin khách hàng

2 Người quản lí CSDL quản lí thông tin nhân viên

3 Người quản lí CSDL quản llis thông tin đơn dặt dịch vụ của khách hàng

4 Người quản lí CSDL quản lí dịch vụ

5 Người quản lí CSDL quản lí thông tin việc xuất nhập hàng

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

Chỉnh sửa thông tin nếu có thay đổi( trừ thông tin của khách hàng thì người quản trị không có quyền thay đổi)

2.1.4.5 Ca sử dụng thống kê

Bảng 2.5 Bảng đặt tả Ca sử dụng Tìm kiếm

Tên UC: UC Thống kê ID: Mức độ quan trọng: Cao

Tác nhân chính: Nhân viên quản lý Kiểu Use-Case: Chi tiết, cần thiết

Những người tham gia và quan tâm:

Người quản trị , Nhân viên

Ca sử dụng mô tả việc thống kê đơn đặt dịch vụ, doanh thu, liên hệ, nhân viên, khách hàng và tài khoản khách hàng

Admin cũng như nhân viên có thể thống kê đơn đặt dịch vụ, doanh thu, nhân viên, liên hệ

Kết hợp (Association): Nhân viên quản lý, Người quản trị

Mở rộng (Extend): Thống kê khách hàng, doanh thu, đơn đặt dịch vụ, nhân viên, liên hệ

Các luồng sự kiện thông thường:

1 Admin và nhân viên thống kê lượt đặt dịch vụ

2 Admin và nhân viên thống kê nhân viên

3 Admin và nhân viên thống kê doanh thu

4 Admin và nhân viên thống kê khách hàng

Các luồng sự kiện con:

Các luồng sự kiện thay thế/ngoại lệ:

Thiết kế phần mềm

2.2.1 Các công cụ, kỹ thuật sử dụng

StarUML là một mô hình nền tảng, là phần mềm hỗ trợ UML (Unified Modeling Language) Tích cực hỗ trợ các phương pháp tiếp cận MDA (Model Driven Architecture) bằng cách hỗ trợ các khái niệm hồ sơ UML StarUML vượt trội trong việc tùy biến môi trường của người dùng và có khả năng mở rộng cao trong chức năng của nó dùng StarUML, một trong các công cụ mô hình hóa phần mềm hàng đầu, sẽ đảm bảo tối đa hóa năng suất và chất lượng của các dự án phần mềm của bạn

2.2.2 Thiết kế các tương tác

2.2.2.1 Biểu đồ tuần tự cho ca sử dụng Đăng nhập

Hình 2.2 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đă ng nh ậ p

2.2.2.2 Biểu đồ tuần tự cho ca sử dụng đăng ký

Hình 2.3 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đă ng ký

2.2.2.3 Biểu đồ tuần tự cho ca sử dụng đặt dịch vụ

Hình 2.4 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đặ t d ị ch v ụ

2.2.2.4 Biểu đồ tuần tự cho ca sử dụng tìm kiếm

Hình 2.5 Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng tìm ki ế m

2.2.3.1 Xác định các lớp biên

- Lớp biên là các lớp nhằm chuyển đổi thông tin giao tiếp giữa các tác nhân và hệ thống Đó chính là các giao diện để tác nhân giao tiếp với hệ thống, cho phép thu thập thông tin hay xuất các kết quả Mỗi cặp tác nhân-ca sử dụng có ít nhất 01 lớp biên

- Dựa vào các ca sử dụng đã được xây dựng ở trên, hệ thống có các lớp biên như sau:

 Đối với ca sử dụng đăng nhập:

I_TV_DN: giao diện cho phép thành viên nhập vào các thông tin đăng nhập hệ thống

 Đối với ca sử dụng đăng ký:

I_TV_DKTV: giao diện cho phép người dùng nhập thông tin để đăng ký thành viên của website

 Đối với ca sử dụng đặt dịch vụ:

I_NSD_DH: giao diện cho phép thành viên xem và chọn dịch vụ muốn đặt

 Đối với ca sử dụng tìm kiếm người giúp việc:

Lớp I_NSD_TKDV: giao diện cho phép tác nhân người sử dụng tìm kiếm người giúp việc

 Đối với ca sử dụng tìm kiếm nhân viên:

Lớp I_NSD_TKNV: giao diện cho phép tác nhân quản trị viên tìm kiếm thông tin của nhân viên

 Đối với ca sử dụng tìm kiếm khách hàng:

Lớp I_NSD_TKKH: giao diện cho phép tác nhân quản trị viên tìm kiếm thông tin của khách hàng

 Đối với ca sử dụng xem thông tin cá nhân:

Lớp I_NSD_XTT: giao diện cho phép tác nhân quản trị viên xem thông tin cá nhân

 Đối với ca sử dụng sửa thông tin cá nhân :

Lớp I_NSD_SuaTT: giao diện cho phép tác nhân quản trị viên sửa thông tin cá nhân

 Đối với ca sử dụng kiểm tra đơn đặt dịch vụ :

Lớp I_QL_KTĐDV: giao diện cho phép tác nhân quản lý kiểm tra đơn đặt dịch vụ

 Đối với ca sử dụng thêm dịch vụ :

Lớp I_QL_TDV: giao diện cho phép tác nhân quản lý thêm dịch vụ

 Đối với ca sử dụng thêm tin:

Lớp I_QL_TT: giao diện cho phép tác nhân quản lý thêm tin

 Đối với ca sử dụng sửa tin:

Lớp I_QL_ST: giao diện cho phép tác nhân quản lý sửa tin

 Đối với ca sử dụng xóa tin:

Lớp I_QL_XT: giao diện cho phép tác nhân quản lý xóa tin

 Đối với ca sử dụng thống kê:

Lớp I_QL_TK: giao diện cho phép tác nhân quản lý thống kê đơn đặt dịch vụ, doanh thu Hệ thống thống kê liên hệ, nhân viên, khách hàng

2.2.3.2 Xác định các lớp điều khiển

Lớp điều khiển là các lớp điều hành sự diễn biến trong một ca sử dụng Các lớp điều khiển chứa các quy tắc nghiệp vụ và đứng trung gian giữa lớp biên và lớp thực thể, cho phép từ màn hình có thể truy xuất được các thông tin chứa trong các lớp thực thể Mỗi ca sử dụng có ít nhất một lớp điều khiển

Các lớp điều khiển chính của hệ thống:

Lớp C_NSD_DK: lớp điều khiển cho ca sử dụng đăng ký thành viên Lớp C_NSD_DN: lớp điều khiển cho ca sử dụng đăng nhập hệ thống Lớp C_NSD_ĐDV: lớp điều khiển cho ca sử dụng đặt dịch vụ

Lớp C_NSD_XTTCN: lớp điều khiển cho ca sử dụng Xem thông tin cá nhân

Lớp C_TV_STTCN: lớp điều khiển cho ca sử dụng Sửa thông tin cá nhân

Lớp C_QL_KTĐDV: lớp điều khiển cho ca sử dụng Kiểm tra đơn đặt dịch vụ

Lớp C_QL_XDV: lớp điều khiển cho ca sử dụng Xóa dịch vụ

Lớp C_QL_SDV: lớp điều khiển cho ca sử dụng Sửa dịch vụ

Lớp C_NSD_TDV: lớp điều khiển cho ca sử dụng Thêm dịch vụ

Lớp C_NSD_TKDV: lớp điều khiển cho ca sử dụng Tìm kiếm người giúp việc

Lớp C_NSD_TKKH: lớp điều khiển cho ca sử dụng Tìm kiếm khách hàng

Lớp C_QL_TT: lớp điều khiển cho ca sử dụng Thêm tin

Lớp C_QL_ST: lớp điều khiển cho ca sử dụng Sửa tin

Lớp C_QL_XT: lớp điều khiển cho ca sử dụng Xóa tin

Lớp C_QL_TK: lớp điều khiển cho ca sử dụng Thống kê tổng số nhân viên, liên hệ , doanh thu, số lượng khách hàng

2.2.3.3 Xác định các lớp thực thể

Lớp Tài khoản (TaiKhoan) gồm các thuộc tính:

 Hoten: Họ và tên thành viên

 Email: email của bạn (Tên tài khoản đăng nhập)

 Sdt: Số điện thoại của thành viên

 Matkhau: Mật khẩu đăng nhập vào tài khoản

 Diachi: địa chỉ liên lạc

Lớp Quản trị (users) gồm các thuộc tính

 Password : Mật khẩu đăng nhập

 Fullname: Họ và tên đầy đủ

Lớp Dịch vụ gồm các thuộc tính

 Id_sevice: Id dịch vụ

 Name_sevice: Tên dịch vụ

 Preview_text : Mô tả dịch vụ

 Detail_text : Chi tiết dịch vụ

 Ud_sevice : Ưu điểm của dịch vụ

Lớp Nhân viên gồm các thuộc tính

 Id_staff: Id nhân viên

 Ten_staff: Tên nhân viên

 Lht_ staff: Lương hiện tại

 Lmm_ staff: Lương mong muốn

 Knlv : Kinh nghiệm làm việc

 Hcgd : Hoàn cảnh gia đình

 Knlv : Kỹ năng làm việc

 Vietxu : Số xu của nhân viên

Lớp đánh giá nhân viên (review) gồm các thuộc tính

 Id_review: Id đánh giá

 Content : Nội dung đánh giá

 Id_staff : Id nhân viên

 Id_taikhoan : Id tài khoản

Lớp Tuyển dụng nhân viên gồm các thuộc tính

 Id_recruitment : Id tuyển dụng

 Slug : Tạo link thân thiện cho người dùng Lớp New gồm các thuộc tính sau

 Id_cat : Id danh mục tin

 Slug : Tạo link thân thiện cho người dùng

 Id_tk : Id tài khoản

Lớp giới thiệu gồm các thuộc tính sau

 Id_introduce : Id giới thiệu

Lớp Khách hàng gồm các thuộc tính sau

 Id_customer : Id khách hàng

 Email : Email của khách hàng

 Data : Thời gian khách hàng đặt dịch vụ

 Id_staff : Id nhân viên

Lớp Liên hệ gồm các thuộc tính sau

 Id_contact : Id liên hệ

 Fullname : Họ tên người liên hệ

 Content : Nội dung liên hệ

Lớp Bình luận gồm các thuộc tính sau

 Id_comment : Id bình luận

 Content : Nội dung bình luận

 Id_staff : Id nhân viên

 Id_tk : Id tài khoản

Lớp Danh mục gồm các thuộc tính sau

 Id_cat : Id danh mục

2.2.3.4 Xây dựng thẻ CRC của các lớp thực thể

Bảng 2.6 Thẻ CRC lớp Staff Front:

Mô tả: Lưu trữ thông tin chi tiết của nhóm nhân viên giúp việc

Các Ca sử dụng kết hợp: QL thông tin và tìm kiếm nhân viên

Hiển thị thông tin Nhân viên

Cập nhật thông tin Nhân viên

 Slug: Tạo link thân thiện cho người dùng

Bảng 2.7 Thẻ CRC lớp Category

Mô tả: Lưu trữ danh mục tin Các Ca sử dụng kết hợp: QL thông tin danh mục, tìm kiếm nhóm tin theo danh mục

Hiển thị thông tin Nhóm tin theo danh mục

Cập nhật danh mục , tin

 Id_cat: Id của danh mục

Bảng 2.8 Thẻ CRC lớp Customer

Mô tả: Lưu trữ thông tin chi tiết của khách hàng

Các Ca sử dụng kết hợp: QL thông tin khách hàng , tìm khách hàng

Hiển thị thông tin Khách hàng

Cập nhật thông tin Khách hàng

 Id_customer : Id khách hàng

 Sdt : Số điện thoại khách hàng

 Id_staff : Id nhân viên

2.2.3.5 Biểu đồ lớp của hệ thống

Hình 2.6 Bi ể u đồ l ớ p c ủ a h ệ th ố ng

2.2.4 Thiết kế cơ sở dữ liệu

2.2.4.1 Biểu đồ mô hình quan hệ

Hình 2.7 Bi ể u đồ mô hình quan h ệ

Bảng 2.9 Bảng Staff Tên bảng : Staff

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id nhân viên

Name String 255 Tên nhân viên

Lht Float Lương hiện tại

Năm sinh Date Năm sinh

Images String 255 Ảnh đại diện

Phone String 12 Số điện thoại

Vietxu Integer Xu của nhân viên Active Integer 1 Trạng thái

Knlv String 255 Kinh nghiệm làm việc

Bảng 2.10 Bảng Category Tên bảng : Category

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id danh mục tin

Name String 255 Tên danh mục tin Active Integer 1 Trạng thái

Bảng 2.11 Bảng Comment Tên bảng : Comment

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id comment

FK Id_tk Integer Id tài khoản

Bảng 2.12 Bảng Contact Tên bảng : Contact

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id liên hệ

Fullname String 50 Họ tên người liên hệ

Phone String 12 Số điện thoại

Bảng 2.13 Bảng Customer Tên bảng : Customer

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id khách hàng

Name String 50 Họ tên khách hàng Phone String 50 Số điện thoại

PK Id_staff Integer Id nhân viên

Datelienhe Date Ngày liên hệ

Bảng 2.14 Bảng News Tên bảng : News

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id news

Preview_text String 255 Mô tả

Detail_text String 255 Chi tiết

FK Id_cat Integer Id danh mục tin Images String 255 Ảnh đại diện

Id_taikhoan Integer Id tài khoản

Chuẩn hoá đường link url của website

Bảng 2.15 Bảng Recruitment Tên bảng : Recruitment

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id tuyển dụng

Name String 50 Tên tin tuyển dụng Preview_text String 255 Mô tả

Detail_text String 255 Chi tiết

Id_cat Integer Id danh mục tin Images String 255 Ảnh đại diện

Id_taikhoan Integer Id tài khoản

Chuẩn hoá đường link url của website

Bảng 2.16 Bảng Reviews Tên bảng : Reviews

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id đánh giá

Content String 255 Nội dung đánh giá

FK Id_staff Integer Id nhân viên

Qty Fload Điểm đánh giá

FK Id_taikhoan Integer Id tài khoản

Id_taikhoan Integer Id tài khoản

Bảng 2.17 Bảng Introduce Tên bảng : Introduce

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id giới thiệu

Name String 255 Tên giới thiệu

Detail Text Chi tiết giới thiệu Active Interger 1 Trạng thái

Bảng 2.18 Bảng Sevice Tên bảng : Sevice

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id dịch vụ

Name String 255 Tên dịch vụ

Preview_text String 255 Mô tả

Detail_text Text Chi tiết

Images String 255 Ảnh đại diện

Ud String 255 Ưu điểm của dịch vụ

Bảng 2.19 Bảng Taikhoan Tên bảng : Taikhoan

Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc

PK Id Integer Id tài khoản

Name String 255 Tên tài khoản

Phone String 12 Số điện thoại

Cài đặt phần mềm

2.3.1 Các công cụ, kỹ thuật sử dụng

- Website được viết trên công cụ Sublime Text 3

- Chạy trên môi trường web

- Sử dụng hệ quản trị cơ sở dữ liệu MySQL

2.3.2 Kiến trúc vật lý của hệ thống

Biểu đồ thành phần dùng để mô tả các thành phần phần mềm cấu thành hệ thống và mối quan hệ giữa chúng cmp Component View

Hình 2.8 Bi ể u đồ thành ph ầ n

 Gói Client: Chứa thành phần Giao diện giao tiếp với người dùng

 Gói Server: Bao gồm các thành phần:

Thành phần Điều khiển: dùng để chứa các thành phần điều khiển cần thiết cho thành phần giao diện

Thành phần Thủ tục: đặc tả các thuộc tính, các phương thức để thao tác với các đối tượng trong CSDL

 Gói cơ sở dữ liệu: Chứa thành phần Cơ sở dữ liệu của hệ thống 2.3.2.2 Biểu đồ triển khai

- Biểu đồ triển khai mô tả kiến trúc hệ thống phần cứng (nút) khác nhau như: bộ xử lý, các thiết bị và các thành phần phần mềm thực hiện nên kiến trúc đó Nó mô tả cấu trúc của các đơn vị phần cứng và phần mềm chạy trên nó Biểu đồ triển khai chỉ ra toàn bộ các nút trên mạng, kết nối giữa chúng và các tiến trình chạy trên chúng

- Nút là đối tượng vật lý (các thiết bị) có tài nguyên tính toán Chúng có thể là máy tính, máy in, đọc thẻ từ, thiết bị truyền tin… Các nút được kết nối thông qua kết hợp giao tiếp Các nút trao đổi thông điệp hay đối tượng theo đường dẫn kết nối Kiểu giao tiếp được thể hiện bằng stereotype, chỉ ra thủ tục giao tiếp hay mạng được sử dụng deployment Deployment View

Hình 2.9 Bi ể u đồ tri ể n khai

2.3.3.3 Cài đặt lớp tài khoản

Hình 2.12 Cài đặ t l ớ p Tài kho ả n

CHƯƠNG TRÌNH DEMO

Trang chủ

Hình 3.1 Giao di ệ n trang ch ủ

Trang đặt giúp việc

Hình 3.2 Giao di ệ n trang đặ t giúp vi ệ c

Trang liên hệ

Hình 3.3 Giao di ệ n trang liên h ệ

Ngày đăng: 29/02/2024, 12:06

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN