BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI: XÂY DỰNG WEBSITE BÁN ĐỒ CÔNG NGHỆ
UNIMART
Sinh viên thực hiện
Ngày sinh
Lớp
Khoa
Mã sinh viên
Giảng viên hướng dẫn
:
:
:
:
:
:
Nguyễn Ngọc Hiếu
10/12/1999
DCCNTT8.10
Công Nghệ Thông Tin
1752480201014
Th.S Đặng Trần Long
Bắc Ninh T4 - 2022
1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
NGUYỄN NGỌC HIẾU
TÊN ĐỀ TÀI: XÂY DỰNG WEBSITE BÁN ĐỒ CÔNG
NGHỆ UNIMART
Giảng viên hướng dẫn: Th.S Đặng Trần Long
Bắc Ninh T4 - 2022
2
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
MỤC LỤC
DANH MỤC TỪ NGỮ VIẾT TẮT ................................................................................. 4
DANH MỤC HÌNH ẢNH ............................................................................................... 5
DANH MỤC BẢNG BIỂU ............................................................................................. 8
LỜI CÁM ƠN ............................................................................................................... 10
CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI ............................................................................. 11
1.1. Giới thiệu đề tài ...................................................................................................... 11
1.2. Mục đích đề tài ....................................................................................................... 11
1.3. Đối tượng phạm vi nghiên cứu ................................................................................ 12
1.4. Ý nghĩa đề tài.......................................................................................................... 12
1.5. Cơ sở lý thuyết........................................................................................................ 13
1.5.1. XAMPP ............................................................................................................... 13
1.5.2. PHP và Framework Laravel ................................................................................. 13
1.5.3. Cơ sở dữ liệu MySQL .......................................................................................... 22
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG ...................................................... 24
2.1. Phân tích nghiệp vụ và hệ thống ............................................................................. 24
2.1.1. Đặc tả Actor ......................................................................................................... 24
2.1.1.1. Khách hàng ....................................................................................................... 24
2.1.1.2. Quản trị viên ..................................................................................................... 24
2.2. Biểu đồ luồng dữ liệu .............................................................................................. 25
2.2.1. Biểu đồ luồng dữ liệu mức khung cảnh ................................................................ 25
2.2.2. Biểu đồ luồng dữ liệu mức đỉnh ........................................................................... 25
2.2.3. Biểu đồ luồng dữ liệu mức dưới đỉnh ................................................................... 26
2.3. Biểu đồ phân rã chức năng ...................................................................................... 28
2.4. Biểu đồ Use Case và mô tả kịch bản ca sử dụng...................................................... 31
2.5. Biểu đồ tuần tự ....................................................................................................... 37
2.6. Phân tích cơ sở dữ liệu ............................................................................................ 40
2.7. Biểu ERD hệ thống ................................................................................................. 48
CHƯƠNG 3 ỨNG DỤNG SẢN PHẨM ........................................................................ 53
3.1. Trang khách hàng ................................................................................................... 53
1
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
3.2. Trang quản trị ......................................................................................................... 65
CHƯƠNG 4 KẾT LUẬN .............................................................................................. 84
4.1. Kết luận .................................................................................................................. 84
4.2. Hướng phát triển ..................................................................................................... 84
TÀI LIỆU THAM KHẢO ............................................................................................. 85
2
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
LỜI NÓI ĐẦU
Hiện nay trong sự phát triển không ngừng chỉ của xã hội, việc ứng dụng cơng nghệ
thơng tin cùng việc tin học hóa hiện đại hóa được xem là một trong những thành phần
quyết định, tất yếu trong hoạt động của các chính phủ và các tổ chức cũng như các doanh
nghiệp, đoàn thể, nó đóng vai trị vơ cùng quan trọng, có thể tạo ra những bước đột phá,
cải tiến rõ rệt, vô cùng mạnh mẽ trong mọi hoạt động.
Vì vậy việc sở hữu riêng cho mình một trang Web được xem như là một chiến
lược quảng cáo, cạnh tranh của các doanh nghiệp, cơng ty, đơn vị, đồn thể...trong việc
tiếp thị, giới thiệu, quảng bá sản phẩm cũng như kinh doanh các sản phẩm, khả năng mở
rộng khi hoạt động kinh doanh tăng lên. Thông qua Website, thông tin về doanh nghiệp,
công ty, đơn vị, đoàn thể... dịch vụ mới, sản phẩm mới… sẽ đến được với những người
quan tâm, đến với những khách hàng của họ một cách nhanh chóng dễ dàng.
Nắm bắt được nhu cầu đó với việc chọn và thực hiện đề tài “Xây dựng Website
bán đồ công nghệ Unimart”, với mong muốn xây dựng một Website nhằm đáp ứng các
nhu cầu cung cấp thông tin sản phẩm một cách linh hoạt nhất tới tay người tiêu dùng
cũng như cải thiện doanh số kinh doanh cho các đơn vị, doanh nghiệp, cơng ty, đồn
thể... cùng với khả năng quản lý dễ dàng trong việc quản lý và cập nhật thông tin Website
Em xin gửi lời cảm ơn chân thành đến tới giảng viên hướng dẫn, thầy Đặng Trần
Long đã tận tình hướng dẫn em hồn thành chun đề này. Một lần nữa, em xin gửi lời
cảm ơn đến tất cả các thầy cô Trường Đại Học Công Nghệ Đông Á đã giảng dạy, giúp đỡ
em trong thời gian vừa qua.
3
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
DANH MỤC TỪ NGỮ VIẾT TẮT
STT
Từ viết tắt
Tiếng Anh
Tiếng Việt
1
HTTP
Hypertext Transfer Protocol
Giao thức truyền tải siêu văn bản
2
MVC
Model – View - Controller
Mẫu kiến trúc phần mềm
4
PHP
PHP Hypertext Preprocessor
Ngơn ngữ lập trình kịch bản
5
SQL
Structured Query Language
Ngơn ngữ truy vấn
7
URL
Uniform Resource Location
8
XML
Extensible Markup Language
Một loại mã nhận dạng tài nguyên
thống nhất
Ngôn ngữ đánh dấu mở rộng
4
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
DANH MỤC HÌNH ẢNH
Số hiệu
Tên
Trang
1.1
Mơ hình MVC
15
1.2
Sơ đồ hoạt động của Laravel theo mơ hình MVC
18
1.3
Cấu trúc thư mục của dự án Laravel
19
2.1
Biểu đồ luồng dữ liệu mức khung cảnh
25
2.2
Biểu đồ luồng dữ liệu mức đỉnh
25
2.3
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản
26
lý bán hàng
2.4
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản
26
lý user
2.5
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng quản
27
lý sản phẩm
2.6
Biểu đồ phân rã chức năng hệ thống
28
2.7
Biểu đồ Use Case
31
2.8
Biểu đồ tuần tự xem sản phẩm
37
2.9
Biểu đồ tuần tự tìm kiếm sản phẩm
37
2.10
Biểu đồ tuần tự thêm giỏ hàng
38
2.11
Biểu đồ tuần tự xóa giỏ hàng
38
2.12
Biểu đồ tuần tự thanh toán
39
2.13
Biểu đồ tuần tự đăng nhập admin
39
2.14
Biểu đồ tuần tự duyệt đơn hàng
40
5
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
2.15
Biểu đồ lớp
47
2.16
Biểu đồ ERD
52
3.1
Trang chủ Website
53
3.2
Sản phẩm nổi bật
54
3.3
Sản phẩm bán chạy
55
3.4
Sản phẩm theo từng danh mục
56
3.5
Chi tiết sản phẩm
57
3.6
Sản phẩm cùng danh mục
58
3.7
Trang giỏ hàng
59
3.8
Trang thanh toán
60
3.9
Trang theo dõi đơn hàng
61
3.10
Trang tin tức
62
3.11
Trang giới thiệu
63
3.12
Trang liên hệ
64
3.13
Đăng nhập trang quản trị
65
3.14
Bảng điều khiển trang quản trị
66
3.15
Quản lý sản phẩm
67
3.16
Quản lý thêm sản phẩm
68
3.17
Quản lý danh mục sản phẩm
69
3.18
Quản lý slider
70
3.19
Quản lý bài viết
71
3.20
Quản lý thêm bài viết
72
6
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
3.21
Quản lý danh mục bài viết
73
3.22
Quản lý tài khoản quản trị viên
74
3.23
Quản lý đơn hàng
75
3.24
Trang chi tiết đơn hàng
76
3.25
Quản lý danh sách trang
77
3.26
Danh sách khách hàng
78
3.27
Trang thơng tin của khách hàng
79
3.28
Thơng báo điện thoại khi có đơn hàng mới
80
3.29
Quản lý quyền của admin
81
3.30
Danh sách vai trò
82
3.31
Thêm vai trò
83
7
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
DANH MỤC BẢNG BIỂU
Số hiệu
Tên
Trang
1.1
Cấu trúc thư mục Laravel
20
2.1
Mô tả kịch bản xem sản phẩm
32
2.2
Mô tả kịch tìm kiếm sản phẩm
32
2.3
Mơ tả kịch bản xem bài viết tin tức
33
2.4
Mô tả kịch bản đặt hàng
33
2.5
Mô tả kịch bản theo dõi đơn hàng
34
2.6
Mô tả kịch bản quản lý bài viết tin tức
34
2.7
Mô tả kịch bản quản lý sản phẩm
35
2.8
Mô tả kịch bản quản lý slider
36
2.9
Mô tả kịch bản quản lý đơn hàng
36
2.10
Bảng danh mục bài viết
40
2.11
Bảng bài viết
40
2.12
Bảng danh mục sản phẩm
41
2.13
Bảng sản phẩm
41
2.14
Bảng ảnh liên quan sản phẩm
42
2.15
Bảng slider
42
2.16
Bảng tài khoản quản trị viên
42
2.17
Bảng đơn hàng
43
2.18
Bảng chi tiết đơn hàng
43
2.19
Bảng khách hàng
44
8
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
2.20
Bảng tỉnh thành phố
44
2.21
Bảng quận huyện
45
2.22
Bảng phường xã
45
2.23
Bảng thơng báo
45
2.24
Bảng quyền
46
2.25
Bảng vai trị
46
2.26
Bảng vai trị người dùng
46
2.27
Bảng quyền vai trò
46
9
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
LỜI CÁM ƠN
Em xin gửi lời cảm ơn chân thành tới thầy Đặng Trần Long đã hướng dẫn em
trong suốt quá trình làm báo cáo đồ án tốt nghiệp. Trong thời gian được làm việc với
thầy, em không những học hỏi được nhiều kiến thức bổ ích mà còn học được tinh thần
làm việc và thái độ làm việc nghiêm túc của thầy.
Trong suốt quá trình thực hiện đề tài này, mặc dù đã nỗ lực hết sức mình nhưng
báo cáo của em khó tránh khỏi những sai sót. Em rất mong nhận được sự thơng cảm và
chỉ bảo tận tình của q thầy cơ. Một lần nữa em xin chân thành cảm ơn!
Bắc Ninh, ngày…. tháng…. năm 2022
Sinh viên thực hiện
10
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
CHƯƠNG 1
TỔNG QUAN ĐỀ TÀI
1.1. Giới thiệu đề tài
Bán hàng trực tuyến hiện nay đang được coi là một trong những chiến lược kinh
doanh cực kỳ hiệu quả đối với các cửa hàng doanh nghiệp kinh doanh và đặc biệt là xây
dựng hệ thống Website kết hợp với các trang mạng xã hội đang phát triển hiện nay như
Facebook … Đã đem lại rất nhiều thành công cho nhiều doanh nghiệp và cửa hàng đặc
biệt là trong mùa dịch Covid 19 đang diễn biến hết sức phức tạp, cho nên nhu cầu mua
sắm online càng nhiều. Đã có rất nhiều ngơn ngữ, Framework xây dựng hệ thống bán
hàng trực tuyến rất thuận tiện và thành công và đã thu lại một nguồn lợi nhuận rất lớn ví
dụ như các cửa hàng Thegioididong, FPTShop, Lazada… họ đã rất thành công với việc
bán hàng từ hệ thống Website. Bên cạnh những lợi ích từ việc xây dựng hệ thống
Website bán hàng thì cũng có khơng ít khó khăn trong việc chọn ngôn ngữ, Framework
để xây dựng hệ thống để đáp ứng đầy đủ nhu cầu của người kinh doanh và khách hàng
tìm kiếm thơng tin.
Do đó em chọn đề tài xây dựng hệ thống Website bán đồ công nghệ trực tuyến
bằng PHP Laravel MySQL có thể phần nào giúp các cửa hàng trình bày sản phẩm và
thơng tin về của hàng cơng ty của mình, và giúp cho khách hàng có thể có nhu cầu tìm
kiếm thơng tin sản phẩm và đặt hàng online một cách dễ dàng.
1.2. Mục đích đề tài
Xây dựng hệ thống Website trình bày sản phẩm, tin tức, giới thiệu, thông tin chi
tiết cho từng sản phẩm, tin tức, và có thể quản lý sản phẩm, tin tức, các module, một cách
thuận tiện và thân thiện với người dùng nhất. Nghiên cứu và đưa một số công nghệ vào
hệ thống Website, quản lý chặt chẽ các sản phẩm, tin tức cũng như vấn đề về bảo mật,
giúp khách hàng có thể dễ dàng tìm kiếm thông tin và một giao diện đẹp nhất.
11
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
1.3. Đối tượng phạm vi nghiên cứu
Đối tượng nghiên cứu:
-
PHP
-
Framework Laravel
-
MySQL
-
JavaScript
-
Slack API
-
Pusher
Phạm vi nghiên cứu đối với Shop có các hoạt động liên quan đến bán hàng qua mạng:
-
Hiển thị và quản lý thông tin sản phẩm
-
Đặt hàng online
-
Quản lý đơn hàng
-
Quản lý sản phẩm
-
Quản lý slider
-
Quản lý quyền
-
Quản lý vai trò
-
Quản lý người dùng
1.4. Ý nghĩa đề tài
Với việc xây dựng được một Website bán đồ cơng nghệ trực tuyến sẽ giúp ích
được nhiều cho các chủ cửa hàng vừa và nhỏ có thể quản lý được các sản phẩm của mình
khi thống kê và giao dịch, cơng việc sẽ được rút ngắn xuống. Có thể quảng bá thương
hiệu một cách rộng rãi hơn, giúp người tiêu dùng có thể tiếp cận được những trang thiết
bị mà không cần phải đến trực tiếp. Người tiêu dùng cũng có thể gửi phản ánh những thắc
mắc về sản phẩm về cho chủ cửa hàng biết.
12
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
1.5. Cơ sở lý thuyết
1.5.1. XAMPP
XAMPP là một ứng dụng phần mềm khá nổi tiếng và thường hay được các lập
trình viên sử dụng để xây dựng và phát triển dự án Website về ngôn ngữ PHP. XAMPP
được cài đặt và chạy trực tiếp trong môi trường Windows. XAMPP 8.1.4 là phiên bản
mới nhất hiện nay được rất nhiều người dùng ưa thích.
XAMPP được xem là một bộ cơng cụ hồn chỉnh dành cho lập trình viên PHP, nó
tích hợp các thành phần quan trọng và tương thích nhau như:
-
Apache.
-
PHP (tạo mơi trường chạy các tập tin script *.php).
-
MySql (hệ quản trị dữ liệu mysql).
-
Ba thành phần trên là 3 thành phần cốt lõi giúp chúng ta nhập môn học ngôn ngữ
PHP, XAMPP lựa chọn sự tương thích các phiên bản giữa chúng và đóng gói
chúng lại giúp cho người dùng dễ dàng cài đặt và sử dụng.
1.5.2. PHP và Framework Laravel
1.5.2.1. PHP
PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf tạo ra năm
1994. Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử dụng trong
môi trường chuyên nghiệp và nó trở thành “PHP: Hypertext Preprocessor”
Thực chất PHP là ngơn ngữ kịch bản nhúng trong HTML, nói một cách đơn giản
đó là một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong HTML.
PHP là một ngơn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một cơng
nghệ phía máy chủ (Server-Side) và không phụ thuộc vào môi trường (cross-platform).
Đây là hai yếu tố rất quan trọng, thứ nhất khi nói cơng nghệ phía máy chủ tức là nói đến
mọi thứ trong PHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất khơng phụ thuộc
mơi trường cho phép PHP chạy trên hầu hết trên các hệ điều hành như Windows, Unix và
nhiều biến thể của nó... Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việc
bình thường trên máy chủ khác mà khơng cần phải chỉnh sửa hoặc chỉnh sửa rất ít.
13
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
1.5.2.2. Framework Laravel và mơ hình MVC
1.5.2.2.1. Mơ hình MVC
MVC là từ viết tắt bởi 3 từ Model – View – Controller. Đây là mơ hình thiết kế sử
dụng trong kỹ thuật phần mềm. Mơ hình chia source code thành 3 phần, tương ứng mỗi
từ. Mỗi từ tương ứng với một hoạt động tách biệt trong một mơ hình.
Model (M):
Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng. Bộ phận này là
một cầu nối giữa 2 thành phần bên dưới là View và Controller. Model thể hiện dưới hình
thức là một cơ sở dữ liệu hoặc có khi chỉ đơn giản là một file XML bình thường. Model
thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý dữ liệu,…
View (V):
Đây là phần giao diện (theme) dành cho người sử dụng. Nơi mà người dùng có thể
lấy được thơng tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếm hoặc
sử dụng thơng qua các Website.
Thơng thường, các ứng dụng Web sử dụng MVC View như một phần của hệ
thống, nơi các thành phần HTML được tạo ra. Bên cạnh đó, View cũng có chức năng ghi
nhận hoạt động của người dùng để tương tác với Controller. Tuy nhiên, View khơng có
mối quan hệ trực tiếp với Controller, cũng không được lấy dữ liệu từ Controller mà chỉ
hiển thị u cầu chuyển cho Controller mà thơi.
Ví dụ: Nút “delete” được tạo bởi View khi người dùng nhấn vào nút đó sẽ có một hành
động trong Controller.
14
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
Controller (C):
Bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua view. Từ
đó, Controller đưa ra dữ liệu phù hợp với người dùng. Bên cạnh đó, Controller cịn có
chức năng kết nối với model.
Hình 1.1: Mơ hình MVC
Luồng tương tác giữa các thành phần trong MVC.
Ví dụ: Chức năng thêm bài viết mới trong trang quản trị Website. Nơi đây có 2 trường
nhập về tiêu đề và nội dung bài viết, thì trong đó:
-
View sẽ hiển thị ra phần nhập form tiêu đề và nội dung.
-
Controller lấy dữ liệu từ 2 trường và gửi tới Model.
-
Model lúc này sẽ nhận dữ liệu từ Controller để lưu trữ trong cơ sở dữ liệu.
Mỗi bộ phận thực hiện chức năng nhất định, nhưng chúng có sự thống nhất, liên kết với
nhau tạo nên mơ hình MVC. khi một u cầu từ máy client gửi tới server, Controller sẽ
thực hiện nhiệm vụ của mình đó là tiếp nhận và xử lý u cầu. Trong trường hợp cần
thiết, nó có thể liên hệ Model – bộ phận làm việc với database để hỗ trợ.
15
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
Khi xử lý xong yêu cầu, kết quả sẽ được trả về View. Tại View sẽ tạo mã HTML thành
giao diện và trả về hiển thị trên trình duyệt. Vậy mơ hình này có những ưu và nhược điểm
gì?
Ưu điểm của mơ hình MVC:
-
Kiểm tra dễ dàng: Với MVC, chúng ta có thể dễ dàng kiểm tra, rà soát lỗi phần
mềm trước khi tới tay người tiêu dùng, đảm bảo chất lượng và độ uy tín cao hơn.
-
Chức năng control: Trên các nền Website thì ngơn ngữ lập trình như CSS,
HTML, Javascript có một vai trị vơ cùng quan trọng. Việc sử dụng mơ hình MVC
sẽ giúp chúng ta có một bộ control ưu việt trên nền tảng các ngơn ngữ hiện đại với
nhiều hình thức khác nhau.
-
View và size: View sẽ là nơi lưu trữ các dữ liệu. Càng nhiều yêu cầu được thực
hiện thì kích thước càng tệp càng lớn. Khi đó, đường truyền mạng cũng giảm tốc
độ load. Việc sử dụng mơ hình MVC sẽ giúp chúng ta tiết kiệm được diện tích
băng thông một cách tối ưu.
-
Chức năng Soc (Separation of Concern): Chức năng này cho phép chúng ta phân
tách rõ ràng các phần như Model, giao diện, data, nghiệp vụ.
-
Tính kết hợp: Việc tích hợp ở mơ hình MVC cho phép chúng ta thoải mái viết
code trên nền tảng Website. Khi đó, server sẽ được giảm tải khá nhiều.
-
Đơn giản: Đây là một mơ hình với kết cấu tương đối đơn giản. Dù khơng có q
nhiều chun mơn cũng có thể sử dụng được.
Nhược điểm:
MVC thường được sử dụng vào những dự án lớn. Do đó, với các dự án nhỏ, mơ
hình MVC có thể gây cồng kềnh, tốn thời gian trong quá trình phát triển cũng như thời
gian trung chuyển dữ liệu.
16
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
1.5.2.2.2. Framework Laravel
Laravel là một trong những PHP Web Framework phổ biến nhất theo mẫu MVC
(Model-View- Controller). Được tạo bởi Taylor Otwell, Laravel Framework là nguồn mở
và miễn phí giúp đưa ra các sản phẩm chất lượng cao. Các code sẽ được giảm thiểu đi,
nhưng vẫn đạt tiêu chuẩn ngành, giúp tiết kiệm được hàng trăm giờ đồng hồ dành cho
việc phát triển. Bản phát hành đầu tiên vào năm 2011, phiên bản hiện tại đã ra mắt là
Laravel 9. Có thể kể đến các ưu điểm như:
-
Tiếp cận các tính năng mới nhất của PHP
-
Tích hợp dịch vụ mail dựa trên nền tảng đám mây hoặc local nhờ API sạch trên
thư viện SwiftMailer
-
Dễ sử dụng nhờ tn theo mẫu thiết kế mơ hình 3 lớp MVC dễ hiểu
-
Tính bảo mật cao
-
Cơng cụ tích hợp cho dòng lệnh Artisan
-
Tạo liên kết đến các Route được đặt tên
-
Tốc độ xử lý nhanh, đáp ứng nhu cầu tạo lập Website hay các dự án lớn trong thời
gian ngắn
Tuy nhiên Laravel cũng có một số nhược điểm nhất định:
-
Làm chậm tốc độ tải trang vì Laravel nặng cho di động
-
Khơng hỗ trợ tính năng tính tốn
17
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
Hình 1.2: Sơ đồ hoạt động của Laravel theo mơ hình MVC
Vì Laravel cũng sử dụng theo mơ hình MVC nên luồng hoạt động cơ bản sẽ là khi
người dùng gửi một yêu cầu lên hệ thống thơng qua một route, route đó sẽ gọi đến một
Controller và một action trong đó, Controller xử lý các u cầu của người dùng. Trong
q trình làm việc đó, Controller sẽ phải thông qua lớp Model nếu muốn làm việc với Cơ
sở dữ liệu. Sau khi xử lý xong, Model sẽ đưa dữ liệu về cho Controller, Controller tiếp
tục đưa sang View và View hiển thị lại cho người dùng kết quả cuối cùng.
18
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
Hình 1.3: Cấu trúc thư mục của dự án Laravel
19
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
Bảng 1.1: Cấu trúc thư mục của Laravel
Folder/File
Mô tả
app
Thư mục app, chứa tất cả các project được tạo, hầu hết các class
trong project đều được tạo ra ở trong thư mục này.Không giống
các Framework khác, các file model không được chứa trong một
thư mục riêng biệt, mà được chứa ngay tại thư mục app này.
app/Console
Thư mục Console, chứa các tập tin định nghĩa các câu lệnh trên
artisan.
app/Exceptions
Thư mục Exceptions, chứa các tập tin quản lý, điều hướng lỗi.
app/Http/Controllers
Thư mục Controllers, chứa các controller của project.
app/Http/Middleware
Thư mục Middleware, chứa các tập tin lọc và ngăn chặn các
requests.
app/Providers
Thư mục Providers, chứa các file thực hiện việc khai báo service
và bind vào trong Service Container.
bootstrap
Thư mục bootstrap, chứa những file khởi động của Framework
và những file cấu hình auto loading, route, và file cache.
config
Thư mục config, chứa tất cả những file cấu hình.
database
Thư mục database, chứa 2 thư mục migration (tạo và thao tác
database) và seeds (tạo dữ liệu mẫu), tiện lợi để lưu trữ dữ liệu
sau này.
public
Thư mục public, chứa file index.php giống như cổng cho tất cả
các request vào project, bên trong thư mục còn chứa file
JavaScript, và CSS.
resources
Thư mục resources, chứa những file view và raw, các file biên
soạn như LESS, SASS, hoặc JavaScript. Ngoài ra còn chứa tất cả
các file lang trong project.
resources/views
Thư mục views, chứa các file view xuất giao diện người dùng.
routes
Thư mục routes, chứa tất cả các điều khiển route (đường dẫn)
20
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
trong project. Chứa các file route sẵn có: web.php, channels.php,
api.php, và console.php.
routes/web.php
File web.php, điều khiển các route của view, như route của trang
top, sản phẩm, ..
.env
File .env, chứa các config chính của Laravel.
artisan
File thực hiện lệnh của Laravel.
.gitattributes
.gitignore
File dành cho xử lý git.
composer.json
composer.lock
composer-setup.php
File của Composer.
package.js
File package.js, chứa các package cần dùng cho projects.
phpunit.xml
File phpunit.xml, xml của phpunit dùng để testing project.
webpack.mix.js
File webpack.mix.js, file dùng để build các webpack.
21
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
1.5.2.3. Tại sao lại sử dụng PHP và Framework Laravel
Để thiết kế Web động có rất nhiều ngơn ngữ lập trình khác nhau để lựa chọn, mặc dù
cấu hình và tính năng khác nhau nhưng chúng vẫn đưa ra những kết quả giống nhau.
Chúng ta có thể lựa chọn cho mình một ngơn ngữ: ASP, PHP, Java, Perl... và một số loại
khác nữa. Vậy tại sao chúng ta lại nên chọn PHP. Rất đơn giản, có những lí do sau mà
khi lập trình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này.
PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp
khác.
PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu có sẵn,
tính linh động, bền vững và khả năng phát triển không giới hạn.
PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các lập trình
viên chuyên nghiệp, với mọi ý tuởng thì PHP có thể đáp ứng một cách xuất sắc.
Đặc biệt với Framework Laravel tích hợp nhiều plugin chúng ta có thể xây dựng
Website một cách nhanh chóng với lượng code sẽ ít hơn rất nhiều khi sử dụng PHP thuần
giúp tăng tốc độ lên nhiều lần.
1.5.3. Cơ sở dữ liệu MySQL
1.5.3.1. Giới thiệu cơ sở dữ liệu
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo
www. mysql. com) và được sử dụng phối hợp với PHP. Trước khi làm việc với MySQL
cần xác định các nhu cầu cho ứng dụng.
MySQL là cơ sở dữ liệu có trình giao diện trên Windows hay Linux, cho phép
người sử dụng có thể thao tác các hành động liên quan đến nó. Việc tìm hiểu từng cơng
nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai công nghệ PHP
và MySQL là một công việc cần thiết và rất quan trọng.
22
Năm 2022
Nguyễn Ngọc Hiếu
Khoa: CNTT
1.5.3.2. Mục đích sử dụng cơ sở dữ liệu
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage),
truy cập (accessibility), tổ chức (organization) và xử lí (manipulation).
Lưu trữ: Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này sang cơ
sở dữ liệu khác, nếu sử dụng cho quy mô nhỏ, chúng ta có thể chọn cơ sở dữ liệu nhỏ
như: Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro… Nếu ứng
dụng có quy mơ lớn, chúng ta có thể chọn cơ sở dữ liệu có quy mơ lớn như: Oracle, SQL
Server…
Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng,
ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu với nhau,
nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích và u cầu
người dùng vượt ra ngồi cơ sở dữ liệu, nên chúng ta cần có các phương thức truy cập dữ
liệu giữa các cơ sở dữ liệu với nhau như: Microsoft Access với SQL Server, hay SQL
Server và cơ sở dữ liệu Oracle....
Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mơ hình cơ sở dữ liệu, phân tích và
thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêng của từng
ứng dụng. Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một số tiêu chuẩn của
hệ thống cơ sở dữ liệu nhằm tăng tính tối ưu khi truy cập và xử lí.
Xử lí: Tùy vào nhu cầu tính tốn và truy vấn cơ sở dữ liệu với các mục đích khác
nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của cơ sở dữ
liệu để xuất ra kết quả như yêu cầu. Để thao tác hay xử lí dữ liệu bên trong chính cơ sở
dữ liệu ta sử dụng các ngơn ngữ lập trình như: PHP, C++, Java, Visual Basic.
23