ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN

95 0 0
ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN

Đ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

Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin ỦY BAN NHÂN DÂN TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- NGUYỄN THỊ YẾN ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 05 năm 2019 ỦY BAN NHÂN DÂN 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 ĐẠI HỌC Tên đề tài: ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN Sinh viên thực hiện NGUYỄN THỊ YẾN MSSV: 2115031034 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA 2015 – 2019 Cán bộ hướng dẫn ThS. DƯƠNG PHƯƠNG HÙNG. Quảng Nam, tháng 05 năm 2019 LỜI CẢM ƠN Lời đầu tiên, em xin gởi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡ chúng em thực hiện đề tài này. Đặc biệt là ThS. Dương Phương Hùng đã tận tình giúp đỡ và hướng dẫn em trong suốt quá trình thực hiện đề tài tốt nghiệp này. Đồng thời, em cũng xin cảm ơn quý thầy cô thuộc ngành Công Nghệ Thông Tin trường Đại Học Quảng Nam đã truyền đạt những kiến thức cần thiết và những kinh nghiệm quý báu cho em trong suốt thời gian 4 năm trên giảng đường để em có thể thực hiện tốt đề tài này. Đặc biệt, em xin gởi lời cảm ơn chân thành tới ThS.Hồ Hữu Linh - giáo viên chủ nhiệm lớp DT15CTT03 cùng ThS. Dương Phương Hùng thầy trưởng khoa đã giúp đỡ em rất nhiều trong quá trình học tập và công việc. Cuối cùng, em xin chân thành cảm ơn những người bạn, và các anh chị tại công ty HT ACTIVE đã luôn đồng hành, chỉ bảo nhiệt tình trong quá trình thực tập tại công ty để em có thể hoàn thành đề tài một cách tốt nhất. Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh khỏi những sai sót. Vì vậy em mong quý thầy cô thông cảm và góp ý để em có thể hoàn thiện đề tài. Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau này. Em xin chân thành cảm ơn i DANH MỤC BẢNG BIỂU Bảng 1.1: Sự khác biệt giữa Abstract class và Interface ................................................ 22 Bảng 2.1: Chức năng đăng nhập. ................................................................................... 28 Bảng2.2: Chức năng tìm kiếm hàng hóa. ....................................................................... 29 Bảng 2.3: Chức năng xem hàng hóa. ............................................................................. 29 Bảng 2.4: Chức năng bình luận. ..................................................................................... 30 Bảng 2.5: Chức năng đặt hàng. ...................................................................................... 31 Bảng 2.6: Chức năng liên hệ - gửi mail. ........................................................................ 31 Bảng 2.7: Chức năng đăng xuất. .................................................................................... 31 Bảng 2.8: Chức năng đăng nhập. ................................................................................... 32 Bảng 2.9: Chức năng quản lý sản phẩm. ........................................................................ 33 Bảng 2.10: Chức năng quản lý nhà sản xuất. ................................................................. 33 Bảng 2.11: Chức năng quản lý người dùng. .................................................................. 34 Bảng 2.12: Chức năng quản lý hóa đơn. ........................................................................ 34 Bảng 2.13: Chức năng quản lý bình luận. ...................................................................... 35 Bảng 2.14: Chức năng quản lý bình luận. ...................................................................... 35 Bảng 2.15: Chức năng tìm kiếm thông tin. .................................................................... 36 Bảng 2.16: Chức năng đăng xuất. .................................................................................. 36 Bảng 2.17: Bảng Products. ............................................................................................. 58 Bảng 2.18: Bảng Factories. ............................................................................................ 58 Bảng 2.19: Bảng User. ................................................................................................... 59 Bảng 2.20: Bảng Role. ................................................................................................... 59 Bảng 2.21: Bảng Userrole. ........................................................................................... 59 Bảng 2.22: Bảng News. .................................................................................................. 60 Bảng 2.23: Bảng Bills .................................................................................................... 60 Bảng 2.24. Bảng Detailbill. ............................................................................................ 61 ii Bảng 2.25. Bảng Promotions. ........................................................................................ 61 Bảng 2.26. Bảng Offers. ................................................................................................. 61 Bảng 2.27. Bảng Comments........................................................................................... 62 Bảng 2.28. Bảng Contacts. ............................................................................................. 62 Bảng 2.29: Bảng Informations ....................................................................................... 62 Bảng 2.30. Bảng Banners. .............................................................................................. 63 Bảng 2.31. Bảng Introduce............................................................................................. 63 Bảng 2.32: Bảng Logo ................................................................................................... 63 Bảng 2.33. Bảng Services .............................................................................................. 63 iii DANH MỤC HÌNH ẢNH Hình 1.1: Phương thức hoạt động của PHP. .................................................................. 10 Hình 1.2: Mô hình MVC. ............................................................................................... 17 Hình 1.3: Mô hình hoạt động chính. .............................................................................. 19 Hình1.4: Mô hình triển khai trong laravel. .................................................................... 26 Hình 2.1: Quan hệ giữa Actor admin với UC. ............................................................... 39 Hình 2.2: Quan hệ giữa Actor nhân viên bán hàng với các UC..................................... 39 Hình 2.3: Quan hệ giữa Actor nhân viên viết bài với các UC. ...................................... 39 Hình 2.4: Quan hệ giữa Actor Khách hàng với các UC................................................. 40 Hình 2.5: Xác định mối quan hệ giữa UC và UC. ......................................................... 40 Hình 2.6: Sơ đồ User case tổng quát. ............................................................................. 40 Hình 2.7: Biểu đồ tuần tự UC đăng nhập. ...................................................................... 46 Hình 2.8: Biểu đồ tuần tự UC quản lý bán hàng. ........................................................... 47 Hình 2.9: Biểu đồ tuần tự quản lý bán hàng. ................................................................. 48 Hình 2.10: Biểu đồ tuần tự UC thanh toán..................................................................... 49 Hình 2.11: Biểu đồ tuần tự UC - Thống kê. ................................................................... 49 Hình 2.12: Biểu đồ tuần tự quản lý người dùng............................................................. 50 Hình 2.13: Biểu đồ tuần tự quản lý tin tức. .................................................................... 50 Hình 2.14: Biểu đồ tuần tự quản lý đăng xuất. .............................................................. 51 Hình 2.15: Biểu đồ cộng tác UC đăng nhập. ................................................................. 51 Hình 2.16: Biểu đồ cộng tác quản lý bán hàng. ............................................................. 52 Hình 2.17: Biểu đồ cộng tác quản lý hàng hóa. ............................................................. 52 Hình 2.18: Biểu đồ cộng tác quản lý thanh toán. ........................................................... 53 Hình 2.19: Biểu đồ cộng tác thống kê. ........................................................................... 53 Hình 2.20: Biểu đồ cộng tác quản lý người dùng. ......................................................... 54 Hình 2.21: Biểu đồ cộng tác quản lý tin tức. ................................................................. 54 iv Hình 2.22: Biểu đồ lớp. .................................................................................................. 55 Hình 2.23. Biểu đồ trạng thái cho chức năng đăng nhập. .............................................. 56 Hình 2.24: Biểu đồ trạng thái cho chức năng quản lý sản phẩm. .................................. 56 Hình 2.25: Biểu đồ trạng thái cho lớp sản phẩm chức năng xem chi tiết sản phẩm. ..... 56 Hình 2.26. Biểu đồ trạng thái cho lớp hóa đơn chức năng đặt hàng. ............................. 57 Hình 2.26: Biểu đồ trạng thái cho lớp hóa đơn chức năng quản lý hóa đơn ................. 57 Hình 2.27. Biểu đồ trạng thái cho chức năng thống kê. ................................................. 57 Hình 3.1. Giao diện đăng nhập hệ thống quản lý website. ............................................ 64 Hình 3.2. Giao diện trang chủ hệ thống. ........................................................................ 64 Hình 3.3. Giao diện hiển thị danh sách người dùng....................................................... 65 Hình 3.4. Giao diện tạo người dùng. .............................................................................. 66 Hình 3.5. Giao diện xem thông tin người dùng. ............................................................ 66 Hình 3.6. Giao diện chỉnh sửa người dùng. ................................................................... 67 Hình 3.7. Giao diện tạo sản phẩm. ................................................................................. 67 Hình 3.8. Giao diện xem chi tiết sản phẩm. ................................................................... 68 Hình 3.9. Giao diện danh sách đơn hàng. ...................................................................... 68 Hình 3.10. Giao diện chi tiết đơn hàng. ......................................................................... 69 Hình 3.11. Xuất hóa đơn sang PDF. .............................................................................. 69 Hình 3.12. Giao diện trang đăng nhập. .......................................................................... 70 Hình 3.13. Giao diện đăng ký tài khoản. ....................................................................... 71 Hình 3.14. Giao diện trang chủ website bán hàng. ........................................................ 72 Hình 3.15. Giao diện trang sản phẩm cùng loại. ............................................................ 73 Hình 3.16. Giao diện trang chi tiết sản phẩm................................................................. 74 Hình 3.17. Giao diện trang tin tức.................................................................................. 75 Hình 3.18. Giao diện trang liên hệ. ................................................................................ 76 Hình 3.19. Xác nhận liên hệ của người dùng bằng email. ............................................. 77 v Hình 3.20. Giao diện đặt hàng. ...................................................................................... 77 Hình 3.21. Giao diện thanh toán hóa đơn. ..................................................................... 78 vi DANH MỤC TỪ VIẾT TẮT Chữ cái viết tắt Ký hiệu Cụm từ đầy đủ PHP Hypertext Preprocessor. HTML HyperText Markup Language CSS Cascading Style Sheets MVC Model – View - Controller OOP Object-oriented programming TMĐT Thương mại điện tử CSDL Cơ sở dữ liệu OECD Organization for Economic Cooperation and Development B2B Business to Business B2C Business to customer W3C World Wide Web Consortium WTO World Trade Organization CMD Command Prompt PK Primary key FK Foreign key vii 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 ................................................................................................ 2 1.3. Đối tượng và phạm vi nghiên cứu ......................................................................... 2 1.3.1. Đối tượng ........................................................................................................ 2 1.3.2. 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 ................................................................................................ 3 1.6. Đóng góp của đề tài ............................................................................................... 3 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 .................................................................................. 4 1.1.Tổng quan về thương mại điện tử ....................................................................... 4 1.1.1. Khái niệm thương mại điện tử ......................................................................... 4 1.1.2. Lợi ích của việc sử dụng thương mại điện tử .................................................. 4 1.1.3. Những thách thức và khó khăn của thương mại điện tử ................................. 5 1.1.4. Cơ sở để phát triển và các loại giao dịch thương mại điện tử ......................... 6 1.2.Tổng quan về ngôn ngữ lập trình PHP............................................................... 6 1.2.1. Lịch sử phát triển của PHP .............................................................................. 6 1.2.3. Ưu và nhược điểm của PHP ............................................................................ 8 1.2.4. Tại sao nên dùng PHP ..................................................................................... 9 1.2.5. Phương thức hoạt động của PHP ................................................................... 10 1.2.6. Các loại kiểu dữ liệu ...................................................................................... 10 1.2.7. Biến - Hằng trong PHP .................................................................................. 11 1.2.8. Biểu thức điều kiện trong PH ........................................................................ 11 viii 1.2.9. Hàm trong PHP .............................................................................................. 12 1.2.10. Session và Cookie trong PHP ..................................................................... 12 1.3.Tổng quan về hệ quản trị cơ sở dữ liệu MySQL ............................................. 13 1.3.1. Lịch sử phát triển của MySQL ...................................................................... 13 1.3.2. Khái niệm ...................................................................................................... 13 1.3.3. Ưu điểm của MySQL .................................................................................... 14 1.3.4. Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL ................................ 15 1.4.Tổng quan về mô hình MVC Pattern ............................................................... 16 1.4.1. Lịch sử ra đời của mô hình MVC .................................................................. 16 1.4.2. Khái niệm ...................................................................................................... 16 1.4.3. Đặc điểm của mô hình MVC ......................................................................... 16 1.4.4. Kiến trúc mô hình MVC ................................................................................ 17 1.4.5. Quy trình hoạt động của mô hình MVC ........................................................ 17 1.4.6. Ưu điểm và nhược điểm của mô hình MVC ................................................. 18 1.4.7. Ứng dụng thực tế mô hình MVC ................................................................... 18 1.4.8. Các thành phần kiến trúc khác theo mô hình MVC ...................................... 18 1.5.Tổng quan về lập trình hướng đối tượng OOP ............................................... 19 1.5.1. Lập trình hướng đối tượng OOP là gì? .......................................................... 19 1.5.2. Ưu điểm của lập trình hướng đối tượng OOP ............................................... 20 1.5.3. Một số khái niệm cơ bản trong lập trình hướng đối tượng ........................... 20 1.5.4. Các tính chất của lập trình hướng đối tượng ................................................. 20 1.5.5. Các mức độ truy cập của một phương thức ................................................... 21 1.5.6. Sự khác biệt giữa Abstract class và Interface ................................................ 21 1.6.Tổng quan về PHP framework Laravel ........................................................... 22 1.6.1. Lịch sử phát triển của laravel ........................................................................ 22 1.6.2. Khái niệm ...................................................................................................... 23 ix 1.6.3. Các tính năng chính của Laravel Framework ................................................ 24 1.6.4. Tại sao nên dùng Framework Laravel ........................................................... 25 1.6.5. Những ưu điểm của Laravel Framework ....................................................... 25 Chương 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ỨNG DỤNG ................... 28 2.1. Khảo sát bài toán ............................................................................................... 28 2.1.1. Khảo sát thực tế ............................................................................................. 28 2.1.2. Yêu cầu chức năng của ứng dụng ................................................................. 28 2.1.3. Đặc tính người dùng ...................................................................................... 37 2.1.4. Yêu cầu phi chức năng .................................................................................. 37 2.2. Phân tích hệ thống ............................................................................................. 37 2.2.1. Xác định các Actor và vai trò của Actor ....................................................... 37 2.2.2. Sơ đồ Use Case ............................................................................................. 38 2.2.3. Xác định Object ............................................................................................. 45 2.2.4. Biểu đồ tương tác .......................................................................................... 46 2.2.5. Biểu đồ lớp .................................................................................................... 55 2.2.6. Biểu đồ trạng thái .......................................................................................... 56 2.3. Thiết kế cơ sở dữ liệu ........................................................................................ 58 Chương 3: CÀI ĐẶT WEBSITE ................................................................................ 64 3.1. Một số giao diện quản lý của website .............................................................. 64 3.1.1. Giao diện đăng nhập vào hệ thống quản lý website ...................................... 64 3.1.2. Giao diện trang chủ ....................................................................................... 64 3.1.3. Giao diện quản lý người dùng ....................................................................... 65 3.1.4. Giao diện quản lý sản phẩm .......................................................................... 67 3.1.5. Giao diện quản lý đơn hàng ........................................................................... 68 3.2. Một số giao diện bán hàng của website ........................................................... 70 3.2.1. Giao diện đăng nhập ...................................................................................... 70 x 3.2.2. Giao diện trang đăng ký tài khoản ................................................................. 71 3.2.3. Giao diện trang chủ mua hàng ....................................................................... 72 3.2.4. Giao diện trang sản phẩm cùng loại .............................................................. 73 3.2.5. Giao diện trang chi tiết sản phẩm .................................................................. 74 3.2.6. Giao diện trang tin tức ................................................................................... 75 3.2.7. Giao diện trang liên hệ .................................................................................. 76 3.2.8. Giao diện trang gửi mail đến người dùng ...................................................... 77 3.2.9. Giao diện trang giỏ hàng ............................................................................... 77 3.2.10. Giao diện thanh toán hóa đơn ..................................................................... 78 Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ ....................................................................... 79 1. Kết luận ............................................................................................................... 79 1.1. Kết quả đạt được ......................................................................................... 79 1.2. Hạn chế của đề tài........................................................................................ 79 1.3. Hướng phát triển ......................................................................................... 80 2. Kiến nghị ............................................................................................................. 80 Phần 4. TÀI LIỆU THAM KHẢO ............................................................................. 81 1 Phần 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Hiện nay, công nghệ ngày càng phát triển mạnh mẽ và được ứng dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường nhật của con người. Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào khắp các lĩnh vực. Công nghệ thông tin đã góp phần to lớn cho sự phát triển của xã hội loài người. Thương mại điện tử đã thay đổi cách thức giao dịch, mua bán truyền thống và ngày càng được mọi người ưu thích sử dụng. Do đó, việc “quản lý mua bán hàng trực tuyến qua mạng ” là không thể thiếu được trong mọi doanh nghiệp, cửa hàng vừa và nhỏ. Năm 2008 là năm đầu tiên Việt Nam có sự phát triển lớn mạnh về lĩnh vực thương mại khi chính thức trở thành thành viên thứ 150 của tổ chức thương mại thế giới WTO. Với sự phát triển mạnh mẽ đó không thể phủ nhận sự đóng góp của thương mại điện tử, một lĩnh vực nóng bỏng hiện nay. Một đất nước đang phát triển mạnh mẽ, cuộc sống con người càng ngày nâng cao, mức tiêu thụ sản phẩm ngày càng tăng, nhu cầu con người ngày càng cao. Vì thế việc trao đổi mua bán cũng như quản lý hàng cần phải có sự thay đổi từ thủ công sang máy móc. Xã hội ngày càng phát triển, mức sống của người dân được nâng cao thu nhập kinh tế ngày càng được cải thiện thì chiếc điện thoại di động không còn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng không thể thiếu đối với người dân hiện nay. Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình. Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một chiếc điện thoại mình ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế sẽ mất khá nhiều thời gian và công sức. Cùng với các lý do nêu trên, qua tìm hiểu em được biết việc ứng dụng bán điện thoại di động trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian và công sức phải đến tận cửa hàng để mua. Muốn lựa chọn cho mình một chiếc điện thoại ưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính, điện thoại, ipad có nối mạng internet là có thế mua được mặt hàng điện thoại mình cần. 2 Do đó em xin chọn thực hiện đề tài khóa luận tốt nghiệp của mình là: “ Ứng dụng PHP, MVC Pattern vào xây dựng website quản lý bán điện thoại di động trực tuyến.” cho một của hàng bán điện thoại di động. Việc xây dựng ứng dựng bán hàng trực tuyến sẽ giúp cho công việc kinh doanh trở nên thuận lợi và dễ dàng hơn, đáp ứng được nhu cầu làm việc mọi lúc, mọi nơi, đồng thời thỏa mãn nhu cầu xem thông tin, mua bán trực tuyến,…. Của mọi đối tượng khách hàng. 1.2. Mục tiêu của đề tài - Xây dựng website quản lý bán điện thoại di động trực tuyến với giao diện trực qua, hỗ trợ quản lý tương đối hoàn chỉnh, phục vụ một cách hiệu quả cho người dùng và quản lý của hàng trực tuyến. - Tìm hiểu về thương mại điện tử. - Tìm hiểu và sử dụng được PHP, MVC pattern, OOP và Laravel Framework. - Tìm hiểu và áp dụng được một số công nghệ khác để thiết kế giao diện website như: HTML5 CSS3, Bootstrap 4.x – jquery 3.x, Ajax,…. - Website được xây dựng với định hướng giúp việc mua sắm điện thoại của khách hàng dễ dàng và nhanh gọn hơn, không mất thời gian và công sức. 1.3. Đối tượng và phạm vi nghiên cứu 1.3.1. Đối tượng - Các website quản lý cửa hàng điện thoại di động. - Tổng quan về thương mại điện tử. - Ngoài ngôn ngữ phía backend như: PHP, Laravel Framework, mô hình MVC, OPP thì áp dụng thêm một số công cụ phía frontend như: HTML5 CSS3, Bootstrap 4.x, Jquery 3.x, Ajax,… - Cách phân tích, thiết kế và xây dựng một website thương mại điện tử hoàn chỉnh. 1.3.2. Phạm vi nghiên cứu Nghiên cứu những vấn đề quản trị ở những cửa hàng vừa và nhỏ, có thể định hướng ứng dụng cho các cửa hàng lớn. 1.4. Phương pháp nghiên cứu Phương pháp nghiên cứu được sử dụng trong đề tài bao gồm: 3 - Phương pháp phân tích lý thuyết là phương pháp phân tích, phát hiện và khai thác các khía cạnh khác nhau của lý thuyết để từ đó chọn lọc các thông tin cần thiết để phục vụ cho đề tài nghiên cứu. - Phương pháp quan sát là phương pháp tri giác có mục đích, có kế hoạch thu thập thông tin quan sát được từ thực tế. - Phương pháp chuyên gia là phương pháp xin ý kiến từ giảng viên hướng dẫn, giảng viên bộ môn xác định được hướng xây dựng đề tài, giải quyết các vấn đề khó khăn trong việc thực hiện nội dung khóa luận. - Phương pháp tổng hợp: Áp dụng lựa chọn tốt nhất từ bước phân tích kết hợp với công nghệ, từ đó từng bước hoàn thành đề tài. 1.5. Lịch sử nghiên cứu Đề tài không phải là những vấn đề mới trong khoa học nhưng thực sự là một nghiên cứu ứng dụng lý thuyết và thực tiễn với sinh viên năm cuối về công nghệ thông tin. 1.6. Đóng góp của đề tài Qua đề tài nghiên cứu này, giúp chúng ta có cái nhìn rõ hơn về thương mại điện tử. Nhận thấy được thế mạnh và lợi ích mà thương mại điện tử mang lại. Bên cạnh đó tiếp cận được những cải tiến trong ngôn ngữ lập trình và các công cụ mới. Đồng thời, đề tài hoàn thành sẽ đóng góp vào công tác quản lý, mua bán điện thoại một cách tiện lợi cho thị trường thương mại điện tử. 1.7. Cấu trúc đề tài Nội dung đề tài gồm: Chương I: Cơ sở lý thuyết. Chương II: Khảo sát và phân tích hệ thống ứng dụng. Chương III: Thiết kế và cài đặt hệ thống. Kết luận và kiến nghị. Tài liệu tham khảo. Phụ lục. 4 Phần 2. NỘI DUNG NGHIÊN CỨU Chương 1: CƠ SỞ LÝ THUYẾT 1.1. Tổng quan về thương mại điện tử 1.1.1. Khái niệm thương mại điện tử Hiện nay có nhiều khái nhiệm thương mại điện tử như Electronic Commerce hay e-Commerce trong đó có một khái niệm Thương mại điện tử khá nổi tiếng của các tổ chức quốc tế.Theo tổ chức thương mại thế giới WTO thì thương mại điện tử là việc sản xuất -> tiếp thị -> bán -> phân phối sản phẩm hành hóa và dịch vụ thông qua các phương tiện điện tử. Theo tổ chức hợp tác và phát triển kinh tế OECD có 2 cách định nghĩa rộng và hẹp về giao dịch thương mại điện tử như sau: a. Theo nghĩa rộng Giao dịch thương mại điện tử là việc mua hoặc bán hàng dịch vụ giữa danh nghiệp, người tiêu dùng, chính phủ và các tổ chức nhà nước hoặc tư nhân được tính hàng thông qua các mạng kết nối qua trung gian máy tính.Hàng hóa hoặc dịch vụ được đặt mua qua mạng nhưng việc thanh toán và giao hàng hóa có thể được thực hiện theo phương pháp truyền thống. b. Theo nghĩa hẹp Giao dịch thương mại điện tử là việc mua hoặc bán hàng hóa dịch vụ được tiến hành thông qua internet, giao dịch TMĐT theo định nghĩa này bao gồm: các đơn hàng được nhận hoặc đặt qua bất kì ứng dụng nào trên nền internet trong các giao dịch tự động bất kì hình thức truy cập internet thông qua di động hay tivi loại trừ các đơn hàng qua điện thoại, fax hay email. 1.1.2. Lợi ích của việc sử dụng thương mại điện tử a. Đối với doanh nghiệp Lợi ích lớn nhất mà thương mại điện tử đem lại là tiết kiệm chi phí và tạo thuận lợi cho các bên giao dịch. Với thương mại điện tử bạn không phải tốn kém nhiều cho việc thuê của hàng với đông đảo nhân viên phục vụ, bạn cũng không cần đầu tư nhiều cho kho chứa thay vào đó bạn chỉ cần một khoản tiền nhỏ để xây đựng một website bán hàng qua mạng sau đó chỉ tốn 10 phí để duy trị và vận hành website mỗi tháng. 5 Doanh nghiệp có thể marketing toàn cầu với chi phí cực kì thấp, bạn có thể đưa thông tin quảng cáo của bạn đến với hàng trăm triệu người xem từ khắp nơi trên thế giới.Đây là điều mà chỉ có thương mại điện tử làm được cho doanh nghiệp. b. Đối với người tiêu dùng Thương mại điện tử mở rộng khả năng lựa chọn hàng hóa, dịch vụ người cung cấp. Với thương mại điện tử khách hàng không còn giới hạng về địa lý hay thời gian làm việc, họ có thể mua hàng mọi lúc, mọi nơi. Lựa chọn giữa hàng trăm thậm chí hàng nghìn nhà cung cấp giữa các vùng miền khác nhau. c. Đối với xã hội Thương mại điện tử tạo ra một phương thức kinh doanh và làm việc mới phù hợp với cuộc sống công nghiệp hiện đại. Thương mại điện tử tạo ra một sân chơi mới cho các danh nghiệp buộc họ phải đổi mới, sáng tạo để đưa ra chiến lược kinh doanh và dịch vụ riêng cho sản phẩm dịch vụ từ đó góp phần phát triển cho các doanh nghiệp nói riêng và nền kinh tế tổng thể nói chung. Mặc dù mang lợi những lợi ích kinh tế rất lớn nhưng việc ứng dụng thương mại điện tử cũng không tránh khỏi những thách thức khó khăn. 1.1.3. Những thách thức và khó khăn của thương mại điện tử a. Đối với cơ quan quản lý nhà nước Thách thức về xây dựng và áp dụng chính sách. b. Đối với các cá nhân tổ chức Bản chất của thương mại điện tử là giao dịch một cách gián tiếp, bên mua và bên bán thậm chí còn không biết với nhau điều này dẫn đến những lo ngại riêng giữa người mua và người bán đó là thách thức về lòng tin. Người mua thì lo sợ số thẻ ngân hàng của họ khi truyền đi trên mạng có thể bị kẻ xấu hoặc bên bán lợi dụng và sử dụng bất hợp pháp. Còn người bán thì lo ngại về khả năng thanh toán và quá trình thanh toán của bên mua. c. Đối với các doanh nghiệp Việc thay đổi cơ cấu, nhân sự và quy trình làm việc cũng như là một thách thức đối với nhà quản lý. Để triển khai thành công và hiệu quả thương mại điện tử thì doanh nghiệp phải có một cơ sở hạng tầng thương mại thông tin vững chắc. Tiếp đó phải có đội ngũ IT đủ mạnh để có khả năng vận hành, quản trị và phát triển hệ thống này. 6 1.1.4. Cơ sở để phát triển và các loại giao dịch thương mại điện tử a. Cơ sở để phát triển thương mại điện tử Để phát triển thương mại điện tử cần phải có hội đủ một số cơ sở: - Hạ tầng kỹ thuật internet phải đủ nhanh, mạnh đảm bảo truyền tải các nội dung thông tin bao gồm âm thanh, hình ảnh trung thực và sống động. - Hạ tầng pháp lý: phải có luật về thương mại điện tử công nhận tính pháp lý của các chứng từ điện tử, các hợp đồng điện tử ký qua mạng,… - Phải có cơ sở thanh toán điện tử an toàn bảo mật. - Phải có hệ thống cơ sở chuyển phát hàng nhanh chóng, kịp thời và tin cậy - Phải có hệ thống an toàn bảo mật cho các giao dịch, chống xâm nhập trái phép, chống virus, chống thoái thác . - Phải có nhân lực am hiểu kinh doanh, công nghệ thông tin, thương mại điện tử để triển khai tiếp thị, quảng cáo, xúc tiến, bán hàng và thanh toán qua mạng b. Các loại hình giao dịch thương mại điện tử Business-to-business (B2B) : Mô hình thương mại điện tử giữa các doanh nghiệp với doanh nghiệp. Các loại giao dịch B2B cơ bản: - Bên Bán - (một bên bán nhiều bên mua) là mô hình dựa trên công nghệ web trong đó môt cty bán cho nhiều cty mua. - Bên mua - một bên mua - nhiều bên bán. - Sàn giao dịch - nhiều bên bán - nhiều bên mua. - Thương mại điện tử phối hợp - các đôi tác phối hợp nhau ngay trong quá trình thiết kế chế tạo sản phẩm. Business-t o-consumer (B2C): Mô hình thương mại điện tử giữa doanh nghiệp và người tiêu dùng. Hai loại giao dịch trên là giao dịch cơ bản của thương mại điện tử. Ngoài ra trong thương mại điện tử người ta còn sử dụng các loại giao dịch: Govement-to- Business (G2B), Government-to-citizens (G2C), …. 1.2. Tổng quan về ngôn ngữ lập trình PHP 1.2.1. Lịch sử phát triển của PHP 7 a. PHPFI PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") được phát triển từ một sản phẩm có tên là PHPFI. PHPFI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là ''''Personal Home Page Tools'''' PHPFI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0. b. PHP 3 PHP 3.0 là phiên bản đầu tiên thấy một hình ảnh gần gũi với các phiên bản PHP mà được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. c. PHP 4 Một động cơ mới, có tên ''''Zend Engine'''' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20 số tên miền trên mạng Internet. d. PHP 5 Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn. Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3. 8 e. PHP 6 Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử. Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại. f. PHP7 là một phiên bản của ngôn ngữ PHP được giới thiệu vào ngày 3 tháng 9 năm 2015, đây là phiên bản mới nhất và được trông đợi nhất bởi có nhiều sự thay đổi về cú pháp, bổ sung các thư viện hiện đại giúp ngôn ngữ PHP trở nên đa dạng hơn. 1.2.2. Khái niệm về PHP PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới. 1.2.3. Ưu và nhược điểm của PHP a. Ưu điểm Ưu điểm đầu tiên đó chính là việc PHP được sử dụng miễn phí, vì thế nó là yếu tố vô cùng tuyệt vời cho những ai muốn học về ngôn ngữ lập trình này. Thứ hai, cấu trúc của PHP cực đơn giản, thế nên đối với các bạn lập trình viên khi tìm hiểu và theo họ nó sẽ không bị mất quá nhiều thời gian mới có thể học được. Thứ ba, thư viện mà PHP tạo ra thì có sự phong phú, cũng như được cộng đồng hỗ trợ một cách mạnh mẽ. Thứ tư, khi học về PHP thì các bạn sẽ có được cơ hội về việc làm là rất lớn, mức lương của nó cũng khá cao nếu như chúng tôi không muốn nói là khủng, chắc chắn là các bạn chưa khi nào nghĩ tới. Thứ năm, PHP không chỉ dừng lại ở những tính năng hiện tại, trong tương lai thì nó còn phát triển mạnh mẽ hơn nữa để khẳng định được vị trí của mình 9 luôn là cao ở trong bảng danh sách thực hiện điều tra, khảo sát mỗi năm về ngôn ngữ lập trình trong công nghệ thông tin. b. Nhược điểm của PHP Thứ nhất, PHP có hạn chế về cấu trúc của ngữ pháp, bởi nó không được thiết kế gọn gàng và có phần đẹp mắt như những ngôn ngữ trong lập trình khác. Thứ hai, PHP chỉ có thể hoạt động và sử dụng trên các ứng dụng trong web. 1.2.4. Tại sao nên dùng PHP a. PHP được các ông lớn tin dùng PHP ra đời từ năm 1994, là ngôn ngữ lập trình Web phổ biến nhất hiện nay. Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở rộng cho ứng dụng PHP có thể nói là không có giới hạn. b. Tính Cộng đồng của PHP Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP được coi là khá lớn và có chất lượng. c. Thư viện PHP phong phú Nguyên nhân chủ yếu khiến PHP được đa số lập trình viên tin dùng và ngày càng phát triển mạnh mẽ đó là có các framework đa dạng, thư viện code phong phú giúp chúng ta dễ dàng lựa chọn một sản phẩm phù hợp để triển khai ứng dụng. PHP có thể tương tác với hầu hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao tác file PDF, Office, Email, Streaming… d. PHP có nhiều Framework hỗ trợ Có khá nhiều các Framework hỗ trợ cho PHP khiến nó trở thành một trong những ngôn ngữ lập trình Web phát triển và phổ biến nhất thế giới. Việc sử dụng Framework giúp cho việc lập trình trở nên nhanh và hiệu quả hơn. Một số Framework phổ biến như: Laravel, CodeIgniter, Yii 2, Phalcon, CakePHP,... e. Làm việc với nhiều hệ cơ sở dữ liệu PHP thường đi kèm với MySQL như 1 cặp chiến hữu. PHP hỗ trợ MySQL và các hệ cơ sở dữ liệu khác như Oracle, SQL Server, DB2… f. Tính bảo mật cao 10 Các bản vá lỗi cho PHP cũng như các sản phẩm từ PHP cũng rất nhanh chóng do có nguồn cộng đồng hỗ trợ đông đảo, mạnh mẽ. g. Thị trường tương lai của PHP Với việc ngày càng có nhiều ứng dụng lớn viết bằng PHP, sự đa dạng trong ứng dụng và Framework làm cho thị trường và tương lai dành cho các bạn yêu thích PHP là rất lớn. Rất nhiều công ty đang chọn PHP làm ngôn ngữ phát triển website cho khách hàng cũng như sản phẩm của riêng họ nên việc hiểu biết và chuyên sâu về công nghệ web nói chung và chuyên sâu về PHP nói riêng sẽ là một lợi thế rất lớn cho các bạn. 1.2.5. Phương thức hoạt động của PHP PHP là ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm tạo ra các mã HTML ở phía client (máy khách). Khi người dùng gọi đến trang PHP thì Web server sẽ triệu gọi PHP Engine để phiên dịch trang PHP và trả dữ liệu về trình duyệt của người dùng bằng định dạng HTML. Quá trình này diễn ra khi người dùng tương tác với trang web và trang web cũng thay đổi theo tương ứng tạo thành trang web động. Hình 1.1: Phương thức hoạt động của PHP. 1.2.6. Các loại kiểu dữ liệu a. Kiểu Int (kiểu số nguyên) Kiểu INT(viết tắt của integer) là một kiểu dữ liệu dạng số nguyên và nó có thể hoạt động dưới nhiều kiểu cơ số khác nhau. b. Kiểu Float (kiểu số thực) - Kiểu số thực có thể hiểu nôm na là số có phần dư,.. như: 5.5 hoặc 8.9. - Trong PHP kiểu số thực tồn tại ở 2 dạng là float và double. c. Kiểu Boolean 11 Kiểu boolean trong PHP là một kiểu dữ liệu mà giá trị của nó chỉ tồn tại 2 giá trị TRUE, FALSE (có thể viết hoa, thường cũng được) d. Kiểu String (kiểu chuổi) Kiểu chuỗi trong PHP tồn tại ở hai dạng là String và Char. Để khai báo chuỗi thì giá trị của chuỗi phải được đặt trong cặp dấu ngoặc '''' hoặc ". e. Kiểu Array (kiểu mảng) Kiểu mảng hay còn gọi là array trong PHP là một danh sách các phần tử có cùng, hoặc không cùng kiểu dữ liệu. Nó gồm có 2 loại mảng là mảng một chiều và mảng đa chiều và trong mỗi loại mảng đó nó lại phân ra thành mảng tuần tự và mảng bất tuần tự. Và để truy xuất phần tử trong mảng thì chúng ta cần phải dựa vào vị trí của nó. f. Kiểu Null (kiểu rỗng) Đây là một kiểu dữ liệu rỗng. Khi khai báo biến kiểu này bộ nhớ sẽ tiếp nhận tên biến mà không tốn thêm bất kỳ một ô nhớ nào. g. Kiểu Object Object là một kiểu dữ liệu lưu trữ dữ liệu và thông tin của đối tượng. 1.2.7. Biến - Hằng trong PHP a. Biến Biến là một giá trị có thể thay đổi khi chương trình thực thi. Khi biến được tạo sẽ xuất hiện một vùng nhớ để lưu trữ. Biến trong PHP chỉ tồn tại trong thời gian server phát sinh trang web. Sau khi đã phát sinh xong trang web, tất cả các biến đều bị xóa đi. b. Hằng Khác với biến, hằng số là giá trị không thể thay đổi được. 1.2.8. Biểu thức điều kiện trong PH a. Biểu thức điều kiện IF Là biểu thức điều kiện trong PHP kiểm tra một hoặc tổ hợp biểu thức điều kiện nào đó. Nếu biểu thức trả về true thì thực thi các dòng lệnh. Nếu không thì không làm gì cả. b. Biểu thức If…Else 12 Là biểu thức kiểm tra một hoặc tổ hợp biểu thức điều kiện nào đó. Nếu trả về true thì sẽ thực thi khối lệnh bao trong if , còn không thì thực thi khối lệnh được bao bởi else. c. Biểu thức Elseif Là biểu thức kiểm tra một hoặc một tổ hợp biểu thức điều kiện nào đó, nếu biểu thức trả về giá trị true thì khối lệnh bên trong sẽ được thực thi. d. Biểu thức Switch…Case Là cú pháp kiểm tra sự thỏa mãn của tất cả các trường hợp của biểu thức. Tương tự như elseif. 1.2.9. Hàm trong PHP Hàm nghĩa là một tập hợp các đoạn mã và nó sẽ thực thi các đoạn mã đó khi gọi hàm ra, nó sẽ được thực thi lại nhiều lần hoặc thực thi trong một trường hợp nhất định. Có nghĩa là khi bạn tạo hàm thì các đoạn mã bên trong đó sẽ không thực thi cho đến khi được gọi ra bên ngoài. 1.2.10. Session và Cookie trong PHP a. Session Session là phiên làm việc. Nó là cách đơn giản để lưu trữ 1 biến và khiến biến đó có thể tồn tại từ trang này sang trang khác. Hoạt động của Session: - Session khi sinh ra được lưu trên 1 file có tên dài dòng, khó đoán và được tạo ngẫu nhiên là session id trên máy chủ, và đồng thời ở máy client cũng có 1 cookie sinh ra có nội dung (hay giá trị) đúng như session id (để có thể so khớp session nào là của client nào). - Đối với mỗi ngôn ngữ lập trình web sẽ có tên cookie quy định như php là PHPSESSID, jsp là JSESSIONID,… Các giá trị của biến session sẽ được lưu trong file đó (khác so với các biến thông thường là được lưu trong bộ nhớ server – trong php file nội dung được lưu trong thư mục thiết lập trong file php.ini (tham số session.savepath). b. Cookie Cookie là một phần dữ liệu được lưu trên máy khách. Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó. 13 Trong Cookie có một số thông số sau: - Địa chỉ URL mà trình duyệt sẽ gửi cookie tới - Thời gian hết hạn của cookie - Các cặp biến: giá trị được lưu trữ liên tục Hoạt động của Cookie: - Khác với dữ liệu gửi từ form (POST hay GET) thì cookies ẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ. - Trong quá trình làm việc, cookie có thể bị thay đổi giá trị. Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực. Theo mặc định, thời gian “sống” của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng. Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn). Ví dụ như chế độ Remember ID Password của 1 số trang web. 1.3. Tổng quan về hệ quản trị cơ sở dữ liệu MySQL 1.3.1. Lịch sử phát triển của MySQL Ngày nay ứng dụng web có rất nhiều lựa chọn cơ sở dữ liệu (database), đối với các nên tảng mã nguồn mở nhất là PHP, MySQL là sự lựa chọn vô cùng phổ biến trong một thời gian dài. Phiên bản đầu tiên của MySQL phát hành năm 1995 Công ty Sun Microsystems mua lại MySQL AB trong năm 2008 Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems. Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB. Oracle tiếp tục phát triển MySQL lên phiên bản 5.5. 2013 MySQL phát hành phiên bản 5.6 2015 MySQL phát hành phiên bản 5.7 MySQL đang được phát triển lên phiên bản 8.0. 1.3.2. Khái niệm 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 14 CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. 1.3.3. Ưu điểm của MySQL a. Linh hoạt Sự linh hoạt về flatform là 1 đặc tính nổi bật của MySQL với các phiên bản đang được hỗ trợ của Linux, Unix, Windows, MySQL,….. b. Thực thi cao Các chuyên gia cơ sỡ dữ liệu có thể cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù thông qua kiến trúc storage-engine. MySQL có thể đáp ứng khả năng xử lý những yêu cầu khắt khe nhất của từng hệ thống, MySQL còn đưa ra các “công cụ” cần thiết cho các hệ thống doanh nghiệp khó tính bằng tiện ích tải tốc độ cao, bộ nhớ cache và các cơ chế xử lý nâng cao khác. c. Sử dụng ngay Các tiêu chuẩn đảm bảo của MySQL giúp cho người dùng vững tin và chọn sử dụng ngay, MySQL đưa ra nhiều tùy chọn và các giải pháp để người sử dụng dùng ngay cho server cơ sở dữ liệu MySQL d. Hỗ trợ giao dịch MySQL hỗ trợ giao dịch mạnh 1 cách tự động, thống nhất, độc lập và bền vững, ngoài ra khả năng giao dịch cũng được phân loại và hỗ trợ giao dịch đa dạng mà người viết không gây trở ngại cho người đọc và ngược lại. e. Nơi tin cậy để lưu trữ web và dữ liệu Do MySQL có engine xử lý tốc độ cao và khả năng chèn dữ liệu nhanh, hỗ trợ tốt cho các chức năng chuyên dùng cho web,… Nên MySQL là lựa chọn tốt nhất cho các ứng dụng web và các ứng dụng web doanh nghiệp. f. Bảo mật tốt Doanh nghiệp nào cũng cần tính năng bảo mật dữ liệu tuyệt đối vì đó chính là lợi ích quan trọng hàng đầu và đó cũng là lý do mà các chuyên gia về cơ sỡ dữ liệu chọn dùng MySQL. MySQL có các kỹ thuật mạnh trong việc xác nhận truy cập cơ sở dữ liệu và chỉ có người dùng đã được xác nhận mới có thể truy cập vào server cơ sở dữ liệu. g. Phát triển ứng dụng hỗn hợp 15 MySQL cung cấp hỗ trợ hỗn hợp cho bất kỳ sự phát triển ứng dụng nào nên MySQL được xem là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới. h. Dễ quản lý Quá trình cài đặt MySQL diễn ra khá nhanh chóng trên Microsoft Windows, Linux, Macintosh hoặc Unix. Sau khi cài đặt, các tính năng tự động mở rộng không gian, tự khởi động lại và cấu hình động được thiết lập sẵn sàng cho người quản trị cơ sở dữ liệu làm việc. i. Mã nguồn tự do và hổ trợ xuyên suốt Nhiều doanh nghiệp lo lắng việc sử dụng mã nguồn mở là không an toàn và không được hỗ trợ tốt vì đa số tin vào các phần mềm có bản quyền, nhưng đối với MySQL, các nhà doanh nghiệp hoàn toàn có thể yên tâm về điều này, MySQL có chính sách bồi thường hẳn hoi và luôn hỗ trợ tối đa cho quý doanh nghiệp. j. Chi phí thấp Đối với các dự án phát triển mới, nếu các doanh nghiệp sử dụng MySQL thì đó là một chọn lựa đúng đắn vừa tiết kiệm chi phí vừa đáng tin cậy. 1.3.4. Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL a. 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ó. b. 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, ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn . c. 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. d. 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 e. 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. f. Kết nối và bảo mật 16 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. g. 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 OS2. MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server. h. 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. i. 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 nhanh nhất. 1.4. Tổng quan về mô hình MVC Pattern 1.4.1. Lịch sử ra đời của mô hình MVC MVC là viết tắt của Model - View – Controller được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug. MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80. Sau đó trong một thời gian dài hầu như không có thông tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk. Các giấy tờ quan trọng đầu tiên được công bố trên MVC là “A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk – 80”, bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 8 tháng 9 năm 1988. 1.4.2. Khái niệm MVC Là một trong những design pattern. Được vận hành để tách mã lệnh thành 3 phần riêng biệt. Ở mỗi phần MVC sẽ có những chức năng đặc thù. Để xử lý các tác vụ mà request gởi tới. MVC làm cho mã lệnh trở nên trong sáng, dễ phát triển và dễ nâng cấp theo thời gian. 1.4.3. Đặc điểm của mô hình MVC Cái lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảo trì, module hóa các chức năng và được xây dựng nhanh chóng. MVC tách các tác vụ của ứng dụng thành các phần riêng lẻ model, view, controller giúp cho việc 17 xây dựng ứng dụng nhẹ nhàng hơn. Dễ dàng thêm các tính năng mới và các tính năng cũ có thể dễ dàng thay đổi. MVC cho phép các nhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau. MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnh hưởngđến các phần khác. Chính vì vậy mà kiến trúc MVC đã được ứng dụng để xây dựng rất nhiều framework và thư viện đồ họa khác nhau. 1.4.4. Kiến trúc mô hình MVC Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller: - Model: là nơi chứa những...

Trang 1

ỦY BAN NHÂN DÂN TỈNH QUẢNG NAM

TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN

- -

NGUYỄN THỊ YẾN

ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN

ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 05 năm 2019

Trang 2

ỦY BAN NHÂN DÂN TỈNH QUẢNG NAM

TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, em xin gởi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡ

chúng em thực hiện đề tài này Đặc biệt là ThS Dương Phương Hùng đã tận tình

giúp đỡ và hướng dẫn em trong suốt quá trình thực hiện đề tài tốt nghiệp này Đồng thời, em cũng xin cảm ơn quý thầy cô thuộc ngành Công Nghệ Thông Tin trường Đại Học Quảng Nam đã truyền đạt những kiến thức cần thiết và những kinh nghiệm quý báu cho em trong suốt thời gian 4 năm trên giảng đường để em có

thể thực hiện tốt đề tài này Đặc biệt, em xin gởi lời cảm ơn chân thành tới ThS.Hồ Hữu Linh - giáo viên chủ nhiệm lớp DT15CTT03 cùng ThS Dương Phương Hùng

thầy trưởng khoa đã giúp đỡ em rất nhiều trong quá trình học tập và công việc Cuối cùng, em xin chân thành cảm ơn những người bạn, và các anh chị tại công ty HT ACTIVE đã luôn đồng hành, chỉ bảo nhiệt tình trong quá trình thực tập tại công ty để em có thể hoàn thành đề tài một cách tốt nhất

Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh khỏi những sai sót Vì vậy em mong quý thầy cô thông cảm và góp ý để em có thể hoàn thiện đề tài Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau này

Em xin chân thành cảm ơn!

Trang 4

DANH MỤC BẢNG BIỂU

Bảng 1.1: Sự khác biệt giữa Abstract class và Interface 22

Bảng 2.1: Chức năng đăng nhập 28

Bảng2.2: Chức năng tìm kiếm hàng hóa 29

Bảng 2.3: Chức năng xem hàng hóa 29

Bảng 2.4: Chức năng bình luận 30

Bảng 2.5: Chức năng đặt hàng 31

Bảng 2.6: Chức năng liên hệ - gửi mail 31

Bảng 2.7: Chức năng đăng xuất 31

Bảng 2.8: Chức năng đăng nhập 32

Bảng 2.9: Chức năng quản lý sản phẩm 33

Bảng 2.10: Chức năng quản lý nhà sản xuất 33

Bảng 2.11: Chức năng quản lý người dùng 34

Bảng 2.12: Chức năng quản lý hóa đơn 34

Bảng 2.13: Chức năng quản lý bình luận 35

Bảng 2.14: Chức năng quản lý bình luận 35

Bảng 2.15: Chức năng tìm kiếm thông tin 36

Bảng 2.16: Chức năng đăng xuất 36

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1: Phương thức hoạt động của PHP 10

Hình 1.2: Mô hình MVC 17

Hình 1.3: Mô hình hoạt động chính 19

Hình1.4: Mô hình triển khai trong laravel 26

Hình 2.1: Quan hệ giữa Actor admin với UC 39

Hình 2.2: Quan hệ giữa Actor nhân viên bán hàng với các UC 39

Hình 2.3: Quan hệ giữa Actor nhân viên viết bài với các UC 39

Hình 2.4: Quan hệ giữa Actor Khách hàng với các UC 40

Hình 2.5: Xác định mối quan hệ giữa UC và UC 40

Hình 2.6: Sơ đồ User case tổng quát 40

Hình 2.7: Biểu đồ tuần tự UC đăng nhâ ̣p 46

Hình 2.8: Biểu đồ tuần tự UC quản lý bán hàng 47

Hình 2.9: Biểu đồ tuần tự quản lý bán hàng 48

Hình 2.10: Biểu đồ tuần tự UC thanh toán 49

Hình 2.11: Biểu đồ tuần tự UC - Thống kê 49

Hình 2.12: Biểu đồ tuần tự quản lý người dùng 50

Hình 2.13: Biểu đồ tuần tự quản lý tin tức 50

Hình 2.14: Biểu đồ tuần tự quản lý đăng xuất 51

Hình 2.15: Biểu đồ cộng tác UC đăng nhập 51

Hình 2.16: Biểu đồ cộng tác quản lý bán hàng 52

Hình 2.17: Biểu đồ cộng tác quản lý hàng hóa 52

Hình 2.18: Biểu đồ cộng tác quản lý thanh toán 53

Hình 2.19: Biểu đồ cộng tác thống kê 53

Hình 2.20: Biểu đồ cộng tác quản lý người dùng 54

Hình 2.21: Biểu đồ cộng tác quản lý tin tức 54

Trang 7

Hình 2.22: Biểu đồ lớp 55

Hình 2.23 Biểu đồ trạng thái cho chức năng đăng nhập 56

Hình 2.24: Biểu đồ trạng thái cho chức năng quản lý sản phẩm 56

Hình 2.25: Biểu đồ trạng thái cho lớp sản phẩm chức năng xem chi tiết sản phẩm 56

Hình 2.26 Biểu đồ trạng thái cho lớp hóa đơn chức năng đặt hàng 57

Hình 2.26: Biểu đồ trạng thái cho lớp hóa đơn chức năng quản lý hóa đơn 57

Hình 2.27 Biểu đồ trạng thái cho chức năng thống kê 57

Hình 3.1 Giao diện đăng nhập hệ thống quản lý website 64

Hình 3.2 Giao diện trang chủ hệ thống 64

Hình 3.3 Giao diện hiển thị danh sách người dùng 65

Hình 3.4 Giao diện tạo người dùng 66

Hình 3.5 Giao diện xem thông tin người dùng 66

Hình 3.6 Giao diện chỉnh sửa người dùng 67

Hình 3.7 Giao diện tạo sản phẩm 67

Hình 3.8 Giao diện xem chi tiết sản phẩm 68

Hình 3.9 Giao diện danh sách đơn hàng 68

Hình 3.10 Giao diện chi tiết đơn hàng 69

Hình 3.11 Xuất hóa đơn sang PDF 69

Hình 3.12 Giao diện trang đăng nhập 70

Hình 3.13 Giao diện đăng ký tài khoản 71

Hình 3.14 Giao diện trang chủ website bán hàng 72

Hình 3.15 Giao diện trang sản phẩm cùng loại 73

Hình 3.16 Giao diện trang chi tiết sản phẩm 74

Hình 3.17 Giao diện trang tin tức 75

Hình 3.18 Giao diện trang liên hệ 76

Hình 3.19 Xác nhận liên hệ của người dùng bằng email 77

Trang 8

Hình 3.20 Giao diện đặt hàng 77 Hình 3.21 Giao diện thanh toán hóa đơn 78

Trang 9

DANH MỤC TỪ VIẾT TẮT

Chữ cái viết tắt / Ký hiệu Cụm từ đầy đủ

Trang 10

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 2

1.3 Đối tượng và phạm vi nghiên cứu 2

Phần 2 NỘI DUNG NGHIÊN CỨU 4

Chương 1: CƠ SỞ LÝ THUYẾT 4

1.1.Tổng quan về thương mại điện tử 4

1.1.1 Khái niệm thương mại điện tử 4

1.1.2 Lợi ích của việc sử dụng thương mại điện tử 4

1.1.3 Những thách thức và khó khăn của thương mại điện tử 5

1.1.4 Cơ sở để phát triển và các loại giao dịch thương mại điện tử 6

1.2.Tổng quan về ngôn ngữ lập trình PHP 6

1.2.1 Lịch sử phát triển của PHP 6

1.2.3 Ưu và nhược điểm của PHP 8

1.2.4 Tại sao nên dùng PHP 9

1.2.5 Phương thức hoạt động của PHP 10

1.2.6 Các loại kiểu dữ liệu 10

1.2.7 Biến - Hằng trong PHP 11

1.2.8 Biểu thức điều kiện trong PH 11

Trang 11

1.2.9 Hàm trong PHP 12

1.2.10 Session và Cookie trong PHP 12

1.3.Tổng quan về hệ quản trị cơ sở dữ liệu MySQL 13

1.3.1 Lịch sử phát triển của MySQL 13

1.3.2 Khái niệm 13

1.3.3 Ưu điểm của MySQL 14

1.3.4 Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL 15

1.4.Tổng quan về mô hình MVC Pattern 16

1.4.1 Lịch sử ra đời của mô hình MVC 16

1.4.2 Khái niệm 16

1.4.3 Đặc điểm của mô hình MVC 16

1.4.4 Kiến trúc mô hình MVC 17

1.4.5 Quy trình hoạt động của mô hình MVC 17

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

1.4.7 Ứng dụng thực tế mô hình MVC 18

1.4.8 Các thành phần kiến trúc khác theo mô hình MVC 18

1.5.Tổng quan về lập trình hướng đối tượng OOP 19

1.5.1 Lập trình hướng đối tượng OOP là gì? 19

1.5.2 Ưu điểm của lập trình hướng đối tượng OOP 20

1.5.3 Một số khái niệm cơ bản trong lập trình hướng đối tượng 20

1.5.4 Các tính chất của lập trình hướng đối tượng 20

1.5.5 Các mức độ truy cập của một phương thức 21

1.5.6 Sự khác biệt giữa Abstract class và Interface 21

1.6.Tổng quan về PHP framework Laravel 22

1.6.1 Lịch sử phát triển của laravel 22

1.6.2 Khái niệm 23

Trang 12

1.6.3 Các tính năng chính của Laravel Framework 24

1.6.4 Tại sao nên dùng Framework Laravel 25

1.6.5 Những ưu điểm của Laravel Framework 25

Chương 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ỨNG DỤNG 28

2.1 Khảo sát bài toán 28

2.2.1 Xác định các Actor và vai trò của Actor 37

2.2.2 Sơ đồ Use Case 38

2.2.3 Xác định Object 45

2.2.4 Biểu đồ tương tác 46

2.2.5 Biểu đồ lớp 55

2.2.6 Biểu đồ trạng thái 56

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

Chương 3: CÀI ĐẶT WEBSITE 64

3.1 Một số giao diện quản lý của website 64

3.1.1 Giao diện đăng nhập vào hệ thống quản lý website 64

3.1.2 Giao diện trang chủ 64

3.1.3 Giao diện quản lý người dùng 65

3.1.4 Giao diện quản lý sản phẩm 67

3.1.5 Giao diện quản lý đơn hàng 68

3.2 Một số giao diện bán hàng của website 70

3.2.1 Giao diện đăng nhập 70

Trang 13

3.2.2 Giao diện trang đăng ký tài khoản 71

3.2.3 Giao diện trang chủ mua hàng 72

3.2.4 Giao diện trang sản phẩm cùng loại 73

3.2.5 Giao diện trang chi tiết sản phẩm 74

3.2.6 Giao diện trang tin tức 75

3.2.7 Giao diện trang liên hệ 76

3.2.8 Giao diện trang gửi mail đến người dùng 77

3.2.9 Giao diện trang giỏ hàng 77

3.2.10 Giao diện thanh toán hóa đơn 78

Trang 14

Phần 1 MỞ ĐẦU 1.1 Lý do chọn đề tài

Hiện nay, công nghệ ngày càng phát triển mạnh mẽ và được ứng dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường nhật của con người Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào khắp các lĩnh vực Công nghệ thông tin đã góp phần to lớn cho sự phát triển của xã hội loài người Thương mại điện tử đã thay đổi cách thức giao dịch, mua bán truyền thống và ngày càng được mọi người ưu thích sử dụng Do đó, việc “quản lý mua bán hàng trực tuyến qua mạng ” là không thể thiếu được trong mọi doanh nghiệp, cửa hàng vừa và nhỏ

Năm 2008 là năm đầu tiên Việt Nam có sự phát triển lớn mạnh về lĩnh vực thương mại khi chính thức trở thành thành viên thứ 150 của tổ chức thương mại thế giới WTO Với sự phát triển mạnh mẽ đó không thể phủ nhận sự đóng góp của thương mại điện tử, một lĩnh vực nóng bỏng hiện nay Một đất nước đang phát triển mạnh mẽ, cuộc sống con người càng ngày nâng cao, mức tiêu thụ sản phẩm ngày càng tăng, nhu cầu con người ngày càng cao Vì thế việc trao đổi mua bán cũng như quản lý hàng cần phải có sự thay đổi từ thủ công sang máy móc

Xã hội ngày càng phát triển, mức sống của người dân được nâng cao thu nhập kinh tế ngày càng được cải thiện thì chiếc điện thoại di động không còn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng không thể thiếu đối với người dân hiện nay Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một chiếc điện thoại mình ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế sẽ mất khá nhiều thời gian và công sức

Cùng với các lý do nêu trên, qua tìm hiểu em được biết việc ứng dụng bán điện thoại di động trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian và công sức phải đến tận cửa hàng để mua Muốn lựa chọn cho mình một chiếc điện thoại ưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính, điện thoại, ipad có nối mạng internet là có thế mua được mặt hàng điện thoại mình cần

Trang 15

Do đó em xin chọn thực hiện đề tài khóa luận tốt nghiệp của mình là: “ Ứng dụng PHP, MVC Pattern vào xây dựng website quản lý bán điện thoại di động trực tuyến.” cho một của hàng bán điện thoại di động Việc xây dựng ứng dựng bán hàng trực tuyến sẽ giúp cho công việc kinh doanh trở nên thuận lợi và dễ dàng hơn, đáp ứng được nhu cầu làm việc mọi lúc, mọi nơi, đồng thời thỏa mãn nhu cầu xem thông tin, mua bán trực tuyến,… Của mọi đối tượng khách hàng

1.2 Mục tiêu của đề tài

- Xây dựng website quản lý bán điện thoại di động trực tuyến với giao diện

trực qua, hỗ trợ quản lý tương đối hoàn chỉnh, phục vụ một cách hiệu quả cho người dùng và quản lý của hàng trực tuyến

- Tìm hiểu về thương mại điện tử

- Tìm hiểu và sử dụng được PHP, MVC pattern, OOP và Laravel Framework - Tìm hiểu và áp dụng được một số công nghệ khác để thiết kế giao diện

website như: HTML5 & CSS3, Bootstrap 4.x – jquery 3.x, Ajax,…

- Website được xây dựng với định hướng giúp việc mua sắm điện thoại của khách hàng dễ dàng và nhanh gọn hơn, không mất thời gian và công sức

1.3 Đối tượng và phạm vi nghiên cứu

1.3.1 Đối tượng

- Các website quản lý cửa hàng điện thoại di động

- Tổng quan về thương mại điện tử

- Ngoài ngôn ngữ phía backend như: PHP, Laravel Framework, mô hình MVC, OPP thì áp dụng thêm một số công cụ phía frontend như: HTML5 & CSS3, Bootstrap 4.x, Jquery 3.x, Ajax,…

- Cách phân tích, thiết kế và xây dựng một website thương mại điện tử hoàn chỉnh

1.3.2 Phạm vi nghiên cứu

Nghiên cứu những vấn đề quản trị ở những cửa hàng vừa và nhỏ, có thể định hướng ứng dụng cho các cửa hàng lớn

1.4 Phương pháp nghiên cứu

Phương pháp nghiên cứu được sử dụng trong đề tài bao gồm:

Trang 16

- Phương pháp phân tích lý thuyết là phương pháp phân tích, phát hiện và khai thác các khía cạnh khác nhau của lý thuyết để từ đó chọn lọc các thông tin cần thiết để phục vụ cho đề tài nghiên cứu

- Phương pháp quan sát là phương pháp tri giác có mục đích, có kế hoạch thu thập thông tin quan sát được từ thực tế

- Phương pháp chuyên gia là phương pháp xin ý kiến từ giảng viên hướng dẫn, giảng viên bộ môn xác định được hướng xây dựng đề tài, giải quyết các vấn đề khó khăn trong việc thực hiện nội dung khóa luận

- Phương pháp tổng hợp: Áp dụng lựa chọn tốt nhất từ bước phân tích kết hợp với công nghệ, từ đó từng bước hoàn thành đề tài

1.5 Lịch sử nghiên cứu

Đề tài không phải là những vấn đề mới trong khoa học nhưng thực sự là một nghiên cứu ứng dụng lý thuyết và thực tiễn với sinh viên năm cuối về công nghệ thông tin

1.6 Đóng góp của đề tài

Qua đề tài nghiên cứu này, giúp chúng ta có cái nhìn rõ hơn về thương mại điện tử Nhận thấy được thế mạnh và lợi ích mà thương mại điện tử mang lại

Bên cạnh đó tiếp cận được những cải tiến trong ngôn ngữ lập trình và các công cụ mới

Đồng thời, đề tài hoàn thành sẽ đóng góp vào công tác quản lý, mua bán điện thoại một cách tiện lợi cho thị trường thương mại điện tử

1.7 Cấu trúc đề tài

Nội dung đề tài gồm:

Chương I: Cơ sở lý thuyết

Chương II: Khảo sát và phân tích hệ thống ứng dụng Chương III: Thiết kế và cài đặt hệ thống

Kết luận và kiến nghị Tài liệu tham khảo Phụ lục

Trang 17

Phần 2 NỘI DUNG NGHIÊN CỨU Chương 1: CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về thương mại điện tử

1.1.1 Khái niệm thương mại điện tử

Hiện nay có nhiều khái nhiệm thương mại điện tử như Electronic Commerce hay e-Commerce trong đó có một khái niệm Thương mại điện tử khá nổi tiếng của các tổ chức quốc tế.Theo tổ chức thương mại thế giới WTO thì thương mại điện tử là việc sản xuất -> tiếp thị -> bán -> phân phối sản phẩm hành hóa và dịch vụ thông qua các phương tiện điện tử

Theo tổ chức hợp tác và phát triển kinh tế OECD có 2 cách định nghĩa rộng và hẹp về giao dịch thương mại điện tử như sau:

a Theo nghĩa rộng

Giao dịch thương mại điện tử là việc mua hoặc bán hàng / dịch vụ giữa danh nghiệp, người tiêu dùng, chính phủ và các tổ chức nhà nước hoặc tư nhân được tính hàng thông qua các mạng kết nối qua trung gian máy tính.Hàng hóa hoặc dịch vụ được đặt mua qua mạng nhưng việc thanh toán và giao hàng hóa có thể được thực hiện theo phương pháp truyền thống

b Theo nghĩa hẹp

Giao dịch thương mại điện tử là việc mua hoặc bán hàng hóa dịch vụ được tiến hành thông qua internet, giao dịch TMĐT theo định nghĩa này bao gồm: các đơn hàng được nhận hoặc đặt qua bất kì ứng dụng nào trên nền internet trong các giao dịch tự động bất kì hình thức truy cập internet thông qua di động hay tivi loại trừ các đơn hàng qua điện thoại, fax hay email

1.1.2 Lợi ích của việc sử dụng thương mại điện tử a Đối với doanh nghiệp

Lợi ích lớn nhất mà thương mại điện tử đem lại là tiết kiệm chi phí và tạo thuận lợi cho các bên giao dịch Với thương mại điện tử bạn không phải tốn kém nhiều cho việc thuê của hàng với đông đảo nhân viên phục vụ, bạn cũng không cần đầu tư nhiều cho kho chứa thay vào đó bạn chỉ cần một khoản tiền nhỏ để xây đựng một website bán hàng qua mạng sau đó chỉ tốn 10% phí để duy trị và vận hành website mỗi tháng

Trang 18

Doanh nghiệp có thể marketing toàn cầu với chi phí cực kì thấp, bạn có thể đưa thông tin quảng cáo của bạn đến với hàng trăm triệu người xem từ khắp nơi trên thế giới.Đây là điều mà chỉ có thương mại điện tử làm được cho doanh nghiệp

b Đối với người tiêu dùng

Thương mại điện tử mở rộng khả năng lựa chọn hàng hóa, dịch vụ người cung cấp Với thương mại điện tử khách hàng không còn giới hạng về địa lý hay thời gian làm việc, họ có thể mua hàng mọi lúc, mọi nơi Lựa chọn giữa hàng trăm thậm chí hàng nghìn nhà cung cấp giữa các vùng miền khác nhau

c Đối với xã hội

Thương mại điện tử tạo ra một phương thức kinh doanh và làm việc mới phù hợp với cuộc sống công nghiệp hiện đại Thương mại điện tử tạo ra một sân chơi mới cho các danh nghiệp buộc họ phải đổi mới, sáng tạo để đưa ra chiến lược kinh doanh và dịch vụ riêng cho sản phẩm dịch vụ từ đó góp phần phát triển cho các doanh nghiệp nói riêng và nền kinh tế tổng thể nói chung Mặc dù mang lợi những lợi ích kinh tế rất lớn nhưng việc ứng dụng thương mại điện tử cũng không tránh khỏi những thách thức khó khăn

1.1.3 Những thách thức và khó khăn của thương mại điện tử a Đối với cơ quan quản lý nhà nước

Thách thức về xây dựng và áp dụng chính sách b Đối với các cá nhân tổ chức

Bản chất của thương mại điện tử là giao dịch một cách gián tiếp, bên mua và bên bán thậm chí còn không biết với nhau điều này dẫn đến những lo ngại riêng giữa người mua và người bán đó là thách thức về lòng tin Người mua thì lo sợ số thẻ ngân hàng của họ khi truyền đi trên mạng có thể bị kẻ xấu hoặc bên bán lợi dụng và sử dụng bất hợp pháp Còn người bán thì lo ngại về khả năng thanh toán và quá trình thanh toán của bên mua

c Đối với các doanh nghiệp

Việc thay đổi cơ cấu, nhân sự và quy trình làm việc cũng như là một thách thức đối với nhà quản lý Để triển khai thành công và hiệu quả thương mại điện tử thì doanh nghiệp phải có một cơ sở hạng tầng thương mại thông tin vững chắc Tiếp đó phải có đội ngũ IT đủ mạnh để có khả năng vận hành, quản trị và phát triển hệ thống này

Trang 19

1.1.4 Cơ sở để phát triển và các loại giao dịch thương mại điện tử a Cơ sở để phát triển thương mại điện tử

Để phát triển thương mại điện tử cần phải có hội đủ một số cơ sở:

- Hạ tầng kỹ thuật internet phải đủ nhanh, mạnh đảm bảo truyền tải các nội dung thông tin bao gồm âm thanh, hình ảnh trung thực và sống động

- Hạ tầng pháp lý: phải có luật về thương mại điện tử công nhận tính pháp lý của các chứng từ điện tử, các hợp đồng điện tử ký qua mạng,…

- Phải có cơ sở thanh toán điện tử an toàn bảo mật

- Phải có hệ thống cơ sở chuyển phát hàng nhanh chóng, kịp thời và tin cậy

- Phải có hệ thống an toàn bảo mật cho các giao dịch, chống xâm nhập trái phép, chống virus, chống thoái thác

- Phải có nhân lực am hiểu kinh doanh, công nghệ thông tin, thương mại điện tử để triển khai tiếp thị, quảng cáo, xúc tiến, bán hàng và thanh toán qua mạng

b Các loại hình giao dịch thương mại điện tử

Business-to-business (B2B) : Mô hình thương mại điện tử giữa các doanh nghiệp với doanh nghiệp

Các loại giao dịch B2B cơ bản:

- Bên Bán - (một bên bán nhiều bên mua) là mô hình dựa trên công nghệ web trong đó môt cty bán cho nhiều cty mua

- Bên mua - một bên mua - nhiều bên bán - Sàn giao dịch - nhiều bên bán - nhiều bên mua

- Thương mại điện tử phối hợp - các đôi tác phối hợp nhau ngay trong quá trình thiết kế chế tạo sản phẩm

Business-t o-consumer (B2C): Mô hình thương mại điện tử giữa doanh nghiệp và người tiêu dùng

Hai loại giao dịch trên là giao dịch cơ bản của thương mại điện tử Ngoài ra trong thương mại điện tử người ta còn sử dụng các loại giao dịch: Govement-to-Business (G2B), Government-to-citizens (G2C), …

1.2 Tổng quan về ngôn ngữ lập trình PHP

1.2.1 Lịch sử phát triển của PHP

Trang 20

a PHP/FI

PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'

PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0

b PHP 3

PHP 3.0 là phiên bản đầu tiên thấy một hình ảnh gần gũi với các phiên bản PHP mà được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó

c PHP 4

Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời

Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet

d PHP 5

Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3

Trang 21

e PHP 6

Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại

f PHP7

là một phiên bản của ngôn ngữ PHP được giới thiệu vào ngày 3 tháng 9 năm 2015, đây là phiên bản mới nhất và được trông đợi nhất bởi có nhiều sự thay đổi về cú pháp, bổ sung các thư viện hiện đại giúp ngôn ngữ PHP trở nên đa dạng hơn

1.2.2 Khái niệm về PHP

PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới

1.2.3 Ưu và nhược điểm của PHP a Ưu điểm

Ưu điểm đầu tiên đó chính là việc PHP được sử dụng miễn phí, vì thế nó là yếu tố vô cùng tuyệt vời cho những ai muốn học về ngôn ngữ lập trình này

Thứ hai, cấu trúc của PHP cực đơn giản, thế nên đối với các bạn lập trình viên khi tìm hiểu và theo họ nó sẽ không bị mất quá nhiều thời gian mới có thể học được

Thứ ba, thư viện mà PHP tạo ra thì có sự phong phú, cũng như được cộng đồng hỗ trợ một cách mạnh mẽ

Thứ tư, khi học về PHP thì các bạn sẽ có được cơ hội về việc làm là rất lớn, mức lương của nó cũng khá cao nếu như chúng tôi không muốn nói là khủng, chắc chắn là các bạn chưa khi nào nghĩ tới

Thứ năm, PHP không chỉ dừng lại ở những tính năng hiện tại, trong tương lai thì nó còn phát triển mạnh mẽ hơn nữa để khẳng định được vị trí của mình

Trang 22

luôn là cao ở trong bảng danh sách thực hiện điều tra, khảo sát mỗi năm về ngôn ngữ lập trình trong công nghệ thông tin

b Nhược điểm của PHP

Thứ nhất, PHP có hạn chế về cấu trúc của ngữ pháp, bởi nó không được thiết kế gọn gàng và có phần đẹp mắt như những ngôn ngữ trong lập trình khác

Thứ hai, PHP chỉ có thể hoạt động và sử dụng trên các ứng dụng trong web

1.2.4 Tại sao nên dùng PHP

a PHP được các ông lớn tin dùng

PHP ra đời từ năm 1994, là ngôn ngữ lập trình Web phổ biến nhất hiện nay

Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở rộng cho ứng dụng PHP có thể nói là không có giới hạn

b Tính Cộng đồng của PHP

Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP được coi là khá lớn và có chất lượng

c Thư viện PHP phong phú

Nguyên nhân chủ yếu khiến PHP được đa số lập trình viên tin dùng và ngày càng phát triển mạnh mẽ đó là có các framework đa dạng, thư viện code phong phú giúp chúng ta dễ dàng lựa chọn một sản phẩm phù hợp để triển khai ứng dụng

PHP có thể tương tác với hầu hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao tác file PDF, Office, Email, Streaming…

d PHP có nhiều Framework hỗ trợ

Có khá nhiều các Framework hỗ trợ cho PHP khiến nó trở thành một trong những ngôn ngữ lập trình Web phát triển và phổ biến nhất thế giới Việc sử dụng Framework giúp cho việc lập trình trở nên nhanh và hiệu quả hơn Một số Framework phổ biến như: Laravel, CodeIgniter, Yii 2, Phalcon, CakePHP,

e Làm việc với nhiều hệ cơ sở dữ liệu

PHP thường đi kèm với MySQL như 1 cặp chiến hữu PHP hỗ trợ MySQL và các hệ cơ sở dữ liệu khác như Oracle, SQL Server, DB2…

f Tính bảo mật cao

Trang 23

Các bản vá lỗi cho PHP cũng như các sản phẩm từ PHP cũng rất nhanh chóng do có nguồn cộng đồng hỗ trợ đông đảo, mạnh mẽ

g Thị trường & tương lai của PHP

Với việc ngày càng có nhiều ứng dụng lớn viết bằng PHP, sự đa dạng trong ứng dụng và Framework làm cho thị trường và tương lai dành cho các bạn yêu thích PHP là rất lớn Rất nhiều công ty đang chọn PHP làm ngôn ngữ phát triển website cho khách hàng cũng như sản phẩm của riêng họ nên việc hiểu biết và chuyên sâu về công nghệ web nói chung và chuyên sâu về PHP nói riêng sẽ là một lợi thế rất lớn cho các bạn

1.2.5 Phương thức hoạt động của PHP

PHP là ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm tạo ra các mã HTML ở phía client (máy khách) Khi người dùng gọi đến trang PHP thì Web server sẽ triệu gọi PHP Engine để phiên dịch trang PHP và trả dữ liệu về trình duyệt của người dùng bằng định dạng HTML Quá trình này diễn ra khi người dùng tương tác với trang web và trang web cũng thay đổi theo tương ứng tạo thành trang web động

Hình 1.1: Phương thức hoạt động của PHP 1.2.6 Các loại kiểu dữ liệu

a Kiểu Int (kiểu số nguyên)

Kiểu INT(viết tắt của integer) là một kiểu dữ liệu dạng số nguyên và nó có thể hoạt động dưới nhiều kiểu cơ số khác nhau

b Kiểu Float (kiểu số thực)

- Kiểu số thực có thể hiểu nôm na là số có phần dư, như: 5.5 hoặc 8.9 - Trong PHP kiểu số thực tồn tại ở 2 dạng là float và double

c Kiểu Boolean

Trang 24

Kiểu boolean trong PHP là một kiểu dữ liệu mà giá trị của nó chỉ tồn tại 2 giá trị TRUE, FALSE (có thể viết hoa, thường cũng được)

d Kiểu String (kiểu chuổi)

Kiểu chuỗi trong PHP tồn tại ở hai dạng là String và Char Để khai báo chuỗi thì giá trị của chuỗi phải được đặt trong cặp dấu ngoặc ' hoặc "

e Kiểu Array (kiểu mảng)

Kiểu mảng hay còn gọi là array trong PHP là một danh sách các phần tử có cùng, hoặc không cùng kiểu dữ liệu Nó gồm có 2 loại mảng là mảng một chiều và mảng đa chiều và trong mỗi loại mảng đó nó lại phân ra thành mảng tuần tự và mảng bất tuần tự Và để truy xuất phần tử trong mảng thì chúng ta cần phải dựa vào vị trí của nó

f Kiểu Null (kiểu rỗng)

Đây là một kiểu dữ liệu rỗng Khi khai báo biến kiểu này bộ nhớ sẽ tiếp nhận tên biến mà không tốn thêm bất kỳ một ô nhớ nào

g Kiểu Object

Object là một kiểu dữ liệu lưu trữ dữ liệu và thông tin của đối tượng 1.2.7 Biến - Hằng trong PHP

a Biến

Biến là một giá trị có thể thay đổi khi chương trình thực thi Khi biến được tạo sẽ xuất hiện một vùng nhớ để lưu trữ

Biến trong PHP chỉ tồn tại trong thời gian server phát sinh trang web Sau khi đã phát sinh xong trang web, tất cả các biến đều bị xóa đi

b Hằng

Khác với biến, hằng số là giá trị không thể thay đổi được 1.2.8 Biểu thức điều kiện trong PH

a Biểu thức điều kiện IF

Là biểu thức điều kiện trong PHP kiểm tra một hoặc tổ hợp biểu thức điều kiện nào đó Nếu biểu thức trả về true thì thực thi các dòng lệnh Nếu không thì không làm gì cả

b Biểu thức If…Else

Trang 25

Là biểu thức kiểm tra một hoặc tổ hợp biểu thức điều kiện nào đó Nếu trả về true thì sẽ thực thi khối lệnh bao trong if , còn không thì thực thi khối lệnh được bao bởi else

c Biểu thức Elseif

Là biểu thức kiểm tra một hoặc một tổ hợp biểu thức điều kiện nào đó, nếu biểu thức trả về giá trị true thì khối lệnh bên trong sẽ được thực thi

d Biểu thức Switch…Case

Là cú pháp kiểm tra sự thỏa mãn của tất cả các trường hợp của biểu thức Tương tự như elseif

1.2.9 Hàm trong PHP

Hàm nghĩa là một tập hợp các đoạn mã và nó sẽ thực thi các đoạn mã đó khi gọi hàm ra, nó sẽ được thực thi lại nhiều lần hoặc thực thi trong một trường hợp nhất định Có nghĩa là khi bạn tạo hàm thì các đoạn mã bên trong đó sẽ không thực thi cho đến khi được gọi ra bên ngoài

1.2.10 Session và Cookie trong PHP a Session

Session là phiên làm việc Nó là cách đơn giản để lưu trữ 1 biến và khiến biến đó có thể tồn tại từ trang này sang trang khác

Hoạt động của Session:

- Session khi sinh ra được lưu trên 1 file có tên dài dòng, khó đoán và được tạo ngẫu nhiên là session id trên máy chủ, và đồng thời ở máy client cũng có 1 cookie sinh ra có nội dung (hay giá trị) đúng như session id (để có thể so khớp session nào là của client nào)

- Đối với mỗi ngôn ngữ lập trình web sẽ có tên cookie quy định như php là PHPSESSID, jsp là JSESSIONID,… Các giá trị của biến session sẽ được lưu trong file đó (khác so với các biến thông thường là được lưu trong bộ nhớ server – trong php file nội dung được lưu trong thư mục thiết lập trong file php.ini (tham số session.save_path)

b Cookie

Cookie là một phần dữ liệu được lưu trên máy khách Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó

Trang 26

Trong Cookie có một số thông số sau:

- Địa chỉ URL mà trình duyệt sẽ gửi cookie tới - Thời gian hết hạn của cookie

- Các cặp biến: giá trị được lưu trữ liên tục Hoạt động của Cookie:

- Khác với dữ liệu gửi từ form (POST hay GET) thì cookies ẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ

- Trong quá trình làm việc, cookie có thể bị thay đổi giá trị Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực Theo mặc định, thời gian “sống” của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn) Ví dụ như chế độ Remember ID & Password của 1 số trang web

1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL

1.3.1 Lịch sử phát triển của MySQL

Ngày nay ứng dụng web có rất nhiều lựa chọn cơ sở dữ liệu (database), đối với các nên tảng mã nguồn mở nhất là PHP, MySQL là sự lựa chọn vô cùng phổ biến trong một thời gian dài

Phiên bản đầu tiên của MySQL phát hành năm 1995

Công ty Sun Microsystems mua lại MySQL AB trong năm 2008

Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB Oracle tiếp tục phát triển MySQL lên phiên bản 5.5

2013 MySQL phát hành phiên bản 5.6 2015 MySQL phát hành phiên bản 5.7

MySQL đang được phát triển lên phiên bản 8.0 1.3.2 Khái niệm

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

Trang 27

CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ

1.3.3 Ưu điểm của MySQL a Linh hoạt

Sự linh hoạt về flatform là 1 đặc tính nổi bật của MySQL với các phiên bản đang được hỗ trợ của Linux, Unix, Windows, MySQL,…

b Thực thi cao

Các chuyên gia cơ sỡ dữ liệu có thể cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù thông qua kiến trúc storage-engine MySQL có thể đáp ứng khả năng xử lý những yêu cầu khắt khe nhất của từng hệ thống, MySQL còn đưa ra các “công cụ” cần thiết cho các hệ thống doanh nghiệp khó tính bằng tiện ích tải tốc độ cao, bộ nhớ cache và các cơ chế xử lý nâng cao khác

c Sử dụng ngay

Các tiêu chuẩn đảm bảo của MySQL giúp cho người dùng vững tin và chọn sử dụng ngay, MySQL đưa ra nhiều tùy chọn và các giải pháp để người sử dụng dùng ngay cho server cơ sở dữ liệu MySQL

d Hỗ trợ giao dịch

MySQL hỗ trợ giao dịch mạnh 1 cách tự động, thống nhất, độc lập và bền vững, ngoài ra khả năng giao dịch cũng được phân loại và hỗ trợ giao dịch đa dạng mà người viết không gây trở ngại cho người đọc và ngược lại

e Nơi tin cậy để lưu trữ web và dữ liệu

Do MySQL có engine xử lý tốc độ cao và khả năng chèn dữ liệu nhanh, hỗ trợ tốt cho các chức năng chuyên dùng cho web,… Nên MySQL là lựa chọn tốt nhất cho các ứng dụng web và các ứng dụng web doanh nghiệp

f Bảo mật tốt

Doanh nghiệp nào cũng cần tính năng bảo mật dữ liệu tuyệt đối vì đó chính là lợi ích quan trọng hàng đầu và đó cũng là lý do mà các chuyên gia về cơ sỡ dữ liệu chọn dùng MySQL MySQL có các kỹ thuật mạnh trong việc xác nhận truy cập cơ sở dữ liệu và chỉ có người dùng đã được xác nhận mới có thể truy cập vào server cơ sở dữ liệu

g Phát triển ứng dụng hỗn hợp

Trang 28

MySQL cung cấp hỗ trợ hỗn hợp cho bất kỳ sự phát triển ứng dụng nào nên MySQL được xem là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới

h Dễ quản lý

Quá trình cài đặt MySQL diễn ra khá nhanh chóng trên Microsoft Windows, Linux, Macintosh hoặc Unix Sau khi cài đặt, các tính năng tự động mở rộng không gian, tự khởi động lại và cấu hình động được thiết lập sẵn sàng cho người quản trị cơ sở dữ liệu làm việc

i Mã nguồn tự do và hổ trợ xuyên suốt

Nhiều doanh nghiệp lo lắng việc sử dụng mã nguồn mở là không an toàn và không được hỗ trợ tốt vì đa số tin vào các phần mềm có bản quyền, nhưng đối với MySQL, các nhà doanh nghiệp hoàn toàn có thể yên tâm về điều này, MySQL có chính sách bồi thường hẳn hoi và luôn hỗ trợ tối đa cho quý doanh nghiệp

j Chi phí thấp

Đối với các dự án phát triển mới, nếu các doanh nghiệp sử dụng MySQL thì đó là một chọn lựa đúng đắn vừa tiết kiệm chi phí vừa đáng tin cậy

1.3.4 Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL a 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ó

b 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, ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn

c 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 d 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

e 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

f Kết nối và bảo mật

Trang 29

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

g 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 các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server

h 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 i 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 nhanh nhất

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

1.4.1 Lịch sử ra đời của mô hình MVC

MVC là viết tắt của Model - View – Controller được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80 Sau đó trong một thời gian dài hầu như không có thông tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk Các giấy tờ quan trọng đầu tiên được công bố trên MVC là “A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk – 80”, bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 8 / tháng 9 năm 1988

1.4.2 Khái niệm

MVC Là một trong những design pattern Được vận hành để tách mã lệnh thành 3 phần riêng biệt Ở mỗi phần MVC sẽ có những chức năng đặc thù Để xử lý các tác vụ mà request gởi tới MVC làm cho mã lệnh trở nên trong sáng, dễ phát triển và dễ nâng cấp theo thời gian

1.4.3 Đặc điểm của mô hình MVC

Cái lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảo trì, module hóa các chức năng và được xây dựng nhanh chóng MVC tách các tác vụ của ứng dụng thành các phần riêng lẻ model, view, controller giúp cho việc

Trang 30

xây dựng ứng dụng nhẹ nhàng hơn Dễ dàng thêm các tính năng mới và các tính năng cũ có thể dễ dàng thay đổi MVC cho phép các nhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnh hưởngđến các phần khác

Chính vì vậy mà kiến trúc MVC đã được ứng dụng để xây dựng rất nhiều framework và thư viện đồ họa khác nhau

1.4.4 Kiến trúc mô hình MVC

Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller: - Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, mssql… ); nó sẽ bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…

- View: là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống

- Controller: là nới tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View

Hình 1.2: Mô hình MVC 1.4.5 Quy trình hoạt động của mô hình MVC

- Khi có một yêu cầu từ phía máy client gửi đến server, bộ phận Controller sẽ tiếp nhận và có nhiệm vụ xử lý yêu cầu đó Ngoài ra, khi cần thiết, nó sẽ gọi đến thành phần Model, là bộ phận làm việc với Database

- Khi xử lý xong yêu cầu, tất cả kết quả trả về được đẩy đến View, tại View sẽ lấy ra mã HTML thành giao diện và trả HTML về hiển thị trên trình duyệt

Trang 31

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

- Trình tự xử lý rất rõ ràng

- Mô hình MVC quy hoạch các class/function vào các thành phần riêng biêt Controller - Model - View, việc đó làm cho quá trình phát triển - quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức năng chuyên biệt hoá đồng thời kiểm soát được luồng xử lý

- Tạo mô hình chuẩn cho dự án, khi người có chuyên môn ngoài dự án tiếp cận với dự án dễ dàng hơn

- Mô hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, và dễ dàng triển khai với các dự án nhỏ

b Nhược điểm

Đối với các dự án tính phức tạp cao thì mô hình MVC trở nên không khả dụng

1.4.7 Ứng dụng thực tế mô hình MVC

Có rất nhiều hệ thống, ứng dụng - phần mềm được xây dựng theo chuẩn mô hình MVC và được giới thiệu, phân phối như :

Zend Framework 1 & 2

Design Pattern là một kỹ thuật trong lập trình hướng đối tượng, cung cấp cho chúng ta cách tư duy trong các tình huống xảy ra của lập trình hướng đối tượng cũng như trong quá trình phân tích thiết kế và phát triển phần mềm Vì vậy design pattern không phải là một class, cũng không phải là một library và cũng không hề là một ngôn ngữ cụ thể nào cả

Design pattern cung cấp cho chúng ta các mẫu thiết kế các giải pháp cho các vấn đề chung thường gặp trong lập trình đảm bảo sẽ cung cấp cho chúng ta các giải pháp tối ưu trong việc giải quyết các vấn đề trong lập trình

b Repository Pattern là gì?

Trang 32

Repository pattern là lớp trung gian giữa tầng business logic và data access, giúp cho việc truy cập dữ liệu chặt chẽ và bảo mật hơn.Đóng vai trò là một lớp kết nối giữa tầng business và model của ứng dụng

Thông thường thì các phần truy xuất, giao tiếp với database năm rải rác ở trong code, khi bạn muốn thực hiện một thao tác lên database thì phải tìm trong code cũng như tìm các thuộc tính trong bảng để xử lý Điều này gây lãng phí thời gian và công sức rất nhiều

Với repository design pattern thì việc thay đổi ở code sẽ không ảnh hưởng quá nhiều công sức chúng ra chỉnh sửa

Một nơi duy nhất để thay đổi quyền truy cập dữ liệu cũng như xử lý dữ liệu

Một nơi duy nhất chịu trách nhiệm cho việc mapping các bảng vào object

Tăng tính bảo mật và rõ ràng cho code

Rất dễ dàng để thay thế một repository với một implementation giả cho việc testing, vì vậy bạn không cần chuẩn bị một cơ sở dữ liệu có sẵn

c Mô hình làm việc

Hình 1.3: Mô hình hoạt động chính

1.5 Tổng quan về lập trình hướng đối tượng OOP

1.5.1 Lập trình hướng đối tượng OOP là gì?

Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên khái niệm "công nghệ đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc tính và mã nguồn, được tổ chức thành các phương thức Phương thức

Trang 33

giúp cho đối tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà đối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức "this" hoặc "self")

Giúp tăng năng xuất và đơn giản hóa công việc xây dựng phần mềm, bảo trì phần mềm

Cho phép lập trình viên tập trung vào các đối tượng giống như trong thực tế

1.5.2 Ưu điểm của lập trình hướng đối tượng OOP

Vì lập trình hướng đối tượng ra đời sau nên nó khắc phục được tất cả các điểm yếu của các phương pháp lập trình trước đó Cụ thể nó các ưu điểm sau:

- Dễ dàng quản lý code khi có sự thay đổi chương trình - Dễ mở rộng dự án

- Tiết kiệm được tài nguyên đáng kể cho hệ thống - Có tính bảo mật cao

- Có tính tái sử dụng cao

1.5.3 Một số khái niệm cơ bản trong lập trình hướng đối tượng a Đối tượng (Object)

Trong lập trình hướng đối tượng, đối tượng được hiểu như là 1 thực thể: người, vật hoặc 1 bảng dữ liệu,

Một đối tượng bao gồm 2 thông tin: thuộc tính và phương thức:

Thuộc tính chính là những thông tin, đặc điểm của đối tượng Ví dụ: một người sẽ có họ tên, ngày sinh, màu da, kiểu tóc,

Phương thức là những thao tác, hành động mà đối tượng đó có thể thực hiện Ví dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống,

Ngoài ra, lớp còn được dùng để định nghĩa ra kiểu dữ liệu mới 1.5.4 Các tính chất của lập trình hướng đối tượng

a Tính trừu tượng (abstraction)

Trang 34

Tính chất này giúp chúng ta tập trung vào những vấn đề cốt lõi cần thiết của đối tượng thay vì quan tâm đến cách nó thực hiện Nó cũng làm tăng khả năng mở rộng khi sử dụng cùng với tính đa hình và kế thừa trong lập trình hướng đối tượng

b Tính kế thừa (inheritance)

Lớ p cha có thể chia sẻ dữ liê ̣u và phương thức cho lớp con kế thừa từ nó, nhờ đó ko phải viết la ̣i các logic chung

c Tính đóng gói (encapsulation)

Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện cho việc quản lý và sử dụng

Đóng gói còn để che giấu một số thông tin và chi tiết cài đặt nội bộ để bên ngoài không thể nhìn thấy

d Tính đa hình (polymorphism)

Tính đa hình được thể hiện qua việc viết lại các method (hàm) từ class cha thông qua class kế thừa nó hoặc việc triển khai các interface Hoặc có thể được hiểu là Lớp con sẽ viết lại những phương thức ở lớp cha (overwrite)

1.5.5 Các mức độ truy cập của một phương thức

Private: khắt khe nhất, chỉ trong class khai báo biến này mới có quyền sử dụng

Protected: ít khắt khe hơn Private một chút, ở ngoài class không thể truy cập được biến này Tuy nhiên class con thì có thể

Public: có thể truy cập từ mọi nơi thông qua câu lệnh $obj -> tên_biến; 1.5.6 Sự khác biệt giữa Abstract class và Interface

Chỉ có thể kế thừa nhiều interface khác Có thể kế thừa từ 1 lớp và nhiều interface

Chỉ chứa các khai báo và không có phần nội dung

Có thể chứa các thuộc tính thường và các phương thức bình thường bên

Trang 35

Dùng để định nghĩa 1 khuôn mẫu hoặc quy tắc chung

Dùng để định nghĩa cốt lõi của lớp, thành phần chung của lớp và sử dụng cho nhiều đối tượng cùng kiểu Cần thời gian để tìm phương thức thực

tế tương ứng với lớp dẫn đến thời gian chậm hơn 1 chút

Nhanh hơn so với interface

Khi ta thêm mới 1 khai báo Ta phải tìm hết tất cả những lớp có thực thi interface này để định nghĩa nội dung cho phương thức mới

Đối với abstract class, khi đĩnh nghĩa 1 phương thức mới ta hoàn toàn có thể định nghĩa nội dung phương thức là rỗng hoặc những thực thi mặc định nào đó Vì thế toàn bộ hệ thống vẫn chạy bình thường

Bảng 1.1: Sự khác biệt giữa Abstract class và Interface

1.6 Tổng quan về PHP framework Laravel

1.6.1 Lịch sử phát triển của laravel

Taylor Otwell đã tạo Laravel như một nỗ lực để cung cấp một giải pháp thay thế nâng cao hơn cho CodeIgniter framework, vì nó không cung cấp một số tính năng nhất định như là hỗ trợ tích hợp xác thực (authentication) và ủy quyền (authorization) người dùng

Bản phát hành beta đầu tiên của Laravel được phát hành vào ngày 9 tháng 6 năm 2011, tiếp theo là bản phát hành Laravel 1 sau đó trong cùng một tháng

Laravel 2 được phát hành vào tháng 9 năm 2011 (3 tháng sau), mang lại nhiều cải tiến khác nhau từ tác giả và cộng đồng Các tính năng chính mới bao gồm sự hỗ trợ cho các bộ điều khiển (controller), nó đã làm cho Laravel 2 trở thành một framework tuân thủ đầy đủ MVC, hỗ trợ sẵn cho nguyên lý điều khiển (IoC) và một hệ thống templating gọi là Blade Nhược điểm, hỗ trợ cho các gói của bên thứ ba (third-party packages) đã được gỡ bỏ trong Laravel 2

Laravel 3 được phát hành vào tháng 2 năm 2012 với một loạt các tính năng mới bao gồm giao diện dòng lệnh - commandline interface (CLI) có tên Artisan, hỗ trợ sẵn cho nhiều hệ thống quản lý cơ sở dữ liệu, database migrations, hỗ trợ xử lý events…

Trang 36

Laravel 4, được đặt tên là Illuminate, được phát hành vào tháng 5 năm 2013 Nó được viết thành một khung hoàn chỉnh của Laravel framework, di chuyển bố cục của nó thành một tập các gói riêng biệt được phân phối thông qua Composer, phục vụ như một trình quản lý gói ứng dụng

Laravel 5 được phát hành vào tháng 2 năm 2015 là kết quả của những thay đổi nội bộ đã kết thúc trong việc thay đổi bản phát hành Laravel 4.3 trong tương lai Laravel 5 cũng giới thiệu cấu trúc cây thư mục mới cho các ứng dụng đã phát triển

Vào tháng 3 năm 2015, một khảo sát SitePoint đã liệt kê Laravel là PHP framework phổ biến nhất

Laravel 5.1, phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên của Laravel để nhận hỗ trợ dài hạn (LTS), với các bản sửa lỗi có sẵn trong hai năm và các bản vá bảo mật trong ba năm

Laravel 5.3, được phát hành vào ngày 23 tháng 8 năm 2016 Các tính năng mới trong 5.3 tập trung vào việc cải thiện tốc độ phát triển bằng cách bổ sung thêm các cải tiến cho các tác vụ phổ biến

Laravel 5.4 Phiên bản này có nhiều tính năng mới, như Laravel Dusk, Laravel Mix, Blade Components và Slots, Markdown Emails và nhiều thứ khác

Laravel 5.5 phát hành vào ngày 30 tháng 8 năm 2017 là phiên bản LTS thứ 2 (Laravel 5.5 sẽ là phiên bản LTS Release tiếp theo)

Laravel 5.6 phát hành vào ngày 7 tháng 2 năm 2018

Laravel 5.7 phát hành vào ngày 4 tháng 9 năm 2018 với những cập nhật Laravel 5.8 phát hành vào ngày 26 tháng 2 năm 2019 Laravel 5.8 tiếp tục các cải tiến được thực hiện trong Laravel 5.7 bằng cách giới thiệu các mối quan hệ Eloquent có một lần, cải thiện xác thực email, đăng ký tự động dựa trên chính sách ủy quyền, bộ đệm và trình điều khiển phiên của DynamoDB, cấu hình múi giờ của trình lập lịch biểu được cải thiện các kênh, tuân thủ trình điều khiển bộ đệm PSR-16, cải tiến artisan serve lệnh, hỗ trợ PHPUnit 8.0, hỗ trợ Carbon 2.0, hỗ trợ Pheanstalk 4.0 và một loạt các sửa lỗi và cải thiện khả năng sử dụng khác

1.6.2 Khái niệm

Framework là một thư viện các lớp đã được xây dựng hoàn chỉnh, bộ khung để phát triển các Phần mềm ứng dụng

Trang 37

Laravel là một PHP Framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell và nhằm mục tiêu hỗ trợ phát triển các ứng dụng web theo cấu trúc model- view- controller (MVC) Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu- rõ ràng, một hệ thống đóng gói Modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng

1.6.3 Các tính năng chính của Laravel Framework

- Modularity: chia modul một cách rất rõ ràng và khoa học, với những dự án lớn Laravel hỗ trợ chúng ta chia dự án ra làm những modul nhỏ giúp dự án được quản lí dễ dàng hơn

- Testability: thực hiện test trên từng dòng code và đảm bảo nó chạy đúng như logic và code sẽ không ảnh hưởng đến những phần khác

- Routing: Laravel cung cấp cho chúng ta cách khai báo một route trong dự án cực kì đơn giản và mềm dẻo, với các phương thức như GET, POST, PUT, DELETE

- Configuration Management: Laravel cho phép chúng ta làm việc này rất dễ dàng bằng việc tạo ra 1 file env (Environment) để chúng ta cấu hình các thông số

- QueryBuilder and ORM: Đây là 2 tính năng cực kì quan trọng trong laravel, nó cho phép chúng ta làm việc với CSDL một cách dễ dàng, cung cấp các câu truy vấn ngắn gọn để lấy dự liệu Nó làm việc được với nhiều cơ sở dự liệu khác nhau như PostgreSQL, SQLite, Mysql and SQL Server

- Schema builder, migration and seeding: Đây là các tính năng cho phép các bạn định nghĩa cấu trúc database trong code khi làm việc với Laravel, các bạn có thể tạo table, xoá table, tạo cột, xoá cột Tính năng Seeding cung cấp cho chúng ta tạo ra các dữ liệu mẫu trong database

- Template Engine: Laravel sử dụng Blade cho phần view của mình, với Blade chúng ta có thể show dữ liệu và khai báo các câu điều khiển ở trên view một cách dễ dàng

- E-Mailing: Laravel cung cấp cho chúng ta thư viện để có thể gửi email trong dự án

Trang 38

- Authentication: Laravel đã cung cấp sẵn toàn bộ các tính năng liên quan đến authentication như login, logout, register, forgot password

- Redis: Đây là phương thức cache dữ liệu giúp cho website chúng ta chạy nhanh hơn và ít truy vấn vào database hơn

- Event and command bus: Tính năng cho phép bắt các sự kiện xảy ra trong ứng dụng

- Queues: Laravel tương thích với nhiều dịch vụ queues như Amazon SQS, Beanstalkd and IronMQ

1.6.4 Tại sao nên dùng Framework Laravel

Laravel có một hệ thống có kiến trúc thống nhất, khoa học và cực đơn giản giúp những người mới tiếp cận framework PHP có thể nắm bắt được ngay Các framework khác thật sự khá là khó để bắt đầu, đặc biệt là Zend, Yii Tuy rất đơn giản nhưng Laravel hoàn toàn có thể xây dựng những hệ thống ứng dụng web cực phức tạp, với hiệu năng cao

Các tài nguyên liên quan đến Laravel rất đa dạng, dễ sử dụng

Trực quan, đó là những gì mọi người nói về viết mã trong Laravel, giúp chúng ta tập trung vào các nhiệm vụ chính và các đoạn mã viết trong Laravel được rõ ràng và rất dễ dàng trong bảo trì mã nguồn

Tích hợp công cụ dòng lệnh Artisan, giúp các tác vụ trong phát triển ứng dụng thật đơn giản

Bộ máy blade template thực sự rất hay, nó giúp cho làm việc giữa PHP và HTML thật đơn giản, sáng sủa và tách biệt giữa mã hiển thị và mã logic nghiệp vụ, cái mà trước đó chỉ có thể biết đến ở NET hoặc Java

Laravel hỗ trợ việc cài đặt các gói thư viện và bản thân nó sử dụng rất nhiều các gói thư viện khác để tạo ra các tính năng tuyệt vời Giúp bạn tự động hóa, giảm rất nhiều các tác vụ thủ công trong quá trình build ứng dụng và triển khai sản phẩm

Luôn đổi mới, tích cực và sáng Laravel luôn thay đổi trong các phiên bản, tìm kiếm những tính năng hay, những gói thư viện tốt nhất để tích hợp vào

1.6.5 Những ưu điểm của Laravel Framework a Tốc độ xử lý nhanh

- Nền tảng này có thể hỗ trợ tạo nên các trang web lớn, dự án lớn

Trang 39

- Laravel framework được xây dựng với mã nguồn mỡ và hoàn toàn miễn

d Được xây dựng theo đúng chuẩn W3C

W3C là tiêu chuẩn thiết kế web, bất kì website nào được đánh giá theo đúng chuẩn này thì đều sẽ hoạt động tốt và ít nhiều mang lại những hiệu quả thực sự dành cho công ty, đơn vị sở hữu nó

e Mô hình MVC (Model – View – Controller)

là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm

Hình1.4: Mô hình triển khai trong laravel f Có tích hợp sẵn nhiều tính năng

Laravel đã cung cấp cho người dùng rất nhiều các nhóm tính năng giúp quá trình phát triển trở nên nhanh chóng

g Module đa dạng

Trang 40

Laravel được xây dựng dựa trên hơn 20 thư viện khác nhau Hiểu được cách thiết kế framework khiến các lập trình hoàn toàn có thể đóng góp cho framework cũng như mở rộng chúng một cách dễ dàng

h Tính bảo mật cao

Theo ý kiến của nhiều chuyên gia, Laravel Framework được đánh giá là có độ bảo mật cao hơn nền tảng WordPress

i Cộng đồng người dùng rộng lớn

Như nhiều nền tảng mã nguồn mở khác, Laravel Framwork cũng có cộng đồng người dùng rộng rãi và sẵn sàng hỗ trợ bạn trong quá trình thiết lập và vận hành dự án Đặc biệt việc fix bug hay tìm lỗi trở nên nhanh chóng, dễ dàng và tiết kiệm thời gian hơn rất nhiều

Ngày đăng: 25/04/2024, 03:39

Từ khóa liên quan

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

Tài liệu liên quan