Tải bản đầy đủ (.pdf) (71 trang)

Đề tài thiết kế website diễn đàn công nghệ cho sinh viên công nghệ thông tin bằng laravel (httpfitc site)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (8.31 MB, 71 trang )

TRƯỜNG ĐẠI HỌC HẢI PHỊNG
KHOA CƠNG NGHỆ THƠNG TIN

BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: THIẾT KẾ WEBSITE DIỄN ĐÀN CÔNG NGHỆ
CHO SINH VIÊN CÔNG NGHỆ THƠNG TIN BẰNG LARAVEL
(HTTP://FITC.SITE)

HỌ VÀ TÊN SINH VIÊN

: Vũ Hồi Nam

LỚP

: CNTT1.K20

MÃ SỐ SINH VIÊN

: 193148201074

NGÀNH

: Công nghệ thông tin

GIẢNG VIÊN HƯỚNG DẪN : PGS.TS Lê Đắc Nhường

1

HTTP://FITC.SITE




Hải Phòng, tháng 12 năm 2022

2

HTTP://FITC.SITE


MỤC LỤC
LỜI MỞ ĐẦU............................................................................................5
LỜI CAM ĐOAN......................................................................................7
CHƯƠNG 1 : KHẢO SÁT.....................................................................10
1. KHÁI NIỆM DIỄN ĐÀN CƠNG NGHỆ.........................................10
1.1. Diễn đàn cơng nghệ là gì?.........................................................10
1.2. Các thành phần của một diễn đàn cơng nghệ............................11
2. TÌNH HÌNH CÁC DIỄN ĐÀN TẠI VIỆT NAM HIỆN NAY.........12
3. TÌNH HÌNH TRAO ĐỔI THƠNG TIN CỦA SINH VIÊN KHOA
CƠNG NGHỆ THƠNG TIN ĐẠI HỌC HẢI PHỊNG...................................14
4. GIẢI QUYẾT VẤN ĐỀ....................................................................15
CHƯƠNG 2: GIỚI THIỆU PHP – LARAVEL...................................15
1. PHP...................................................................................................15
1.1. PHP Là gì?................................................................................15
1.2 Khả năng của PHP.....................................................................16
1.3. Ưu nhược điểm của PHP...........................................................17
2. LARAVEL FRAMEWORK (BACK-END).....................................19
3. FILAMENT, LIVEWIRE, BREEZE (FRONT-END)......................22
3.1. Filament.....................................................................................22
3.2 Livewire......................................................................................23
3.3 Breeze..........................................................................................24

4. GIỚI THIỆU VỀ MƠ HÌNH PHP MVC..........................................25
CHƯƠNG 3: PHÂN TÍCH VÀ THIÊT KẾ HỆ THỐNG..................26
1. TỔNG QUAN VỀ CƠ SỞ:...............................................................26
2. BIỂU ĐỒ USE CASE.......................................................................27
2.1 Biểu đồ tổng quát........................................................................27
2.2 Biểu đồ phân rã tác nhân người dùng........................................28
3

HTTP://FITC.SITE


2.3 Biểu đồ phân rã tác nhân Quản trị viên (admin)........................28
3. ĐẶC TẢ USE CASE........................................................................28
3.1 Use Case: Đăng nhập.................................................................28
3.2 Use Case: Đăng ký.....................................................................29
3.3 Use case: tìm kiếm......................................................................31
3.4 use case quản lí thơng tin cá nhân..............................................33
3.5 Use case quản lí câu hỏi.............................................................35
3.6 Use case bình luận (trả lời câu hỏi)...........................................37
3.7 Use case Nhắn tin.......................................................................39
3.8 Use case Quản lý người dùng (Cho admin)...............................40
4. BIỂU ĐỒ HOẠT ĐỘNG..................................................................43
5. BIỂU ĐỒ TUẦN TỰ........................................................................46
6. BIỂU ĐỒ LỚP..................................................................................49
CHƯƠNG 4: THỰC NGHIỆM.............................................................50
1. ĐỀ TÀI..............................................................................................50
2. GIAO DIỆN TRANG CHỦ..............................................................50
3. GIAO DIỆN ĐĂNG KÝ / ĐĂNG NHẬP........................................52
4. GIAO DIỆN CÂU HỎI/VIẾT BÀI...................................................54
5. GIAO DIỆN CÂU TRẢ LỜI / PHẢN HỒI CÂU TRẢ LỜI............55

6. GIAO DIỆN TÌM KIẾM...................................................................57
7. GIAO DIỆN QUẢN LÝ CỦA ADMIN............................................58
8. GIAO DIỆN QUẢN LÝ CỦA NGƯỜI DÙNG...............................61
9. CHỨC NĂNG NHẮN TIN (CHƯA HOÀN THIỆN)......................63
10. CHỨC NĂNG KẾT BẠN (CHƯA HOÀN THIỆN)......................63
KẾT LUẬN..............................................................................................64
TÀI LIỆU THAM KHẢO......................................................................66

4

HTTP://FITC.SITE


LỜI MỞ ĐẦU
Những cơ sở thực tiễn của đề tài
Hiện nay, dưới sự phát triển của công nghệ thông tin, nhu cầu tiếp cận
thông tin và tin tức nhanh và dễ dàng là xu hướng phát triển của hiện nay. Việc
tiếp cận các nguồn thông tin được cập nhật thời gian thực dường như là chìa
khố cạnh tranh giữa các diễn đàn với nhau.
Những website truyền thống hầu như đều khá thơ sơ bởi vì chi phí để đầu
tư và phát triển một web cộng đồng là cực kỳ lớn. Việc duy trì chúng cũng đem
lại rất nhiều khó khăn ví dụ như bảo mật thơng tin, dữ liệu, v.v.
Với chi phí đầu tư thấp nhưng yêu cầu một website ổn định, lưu lượng
truy cập lớn và hơn hết là phù hợp với xu hướng hiện tại thì một website được
xây dựng dựa trên các framework mạnh như ReactJS, Laravel, Angular, v.v. sẽ
giúp tối ưu hố chi phí, khả năng mở rộng trong tương lại và nhìn chung là có
khả năng tuỳ biến UX/UI cực kỳ mạnh
Đứng trước nhu cầu cấp thiết đó, em quyết định triển khai dự án: “THIẾT
KẾ WEBSITE DIỄN ĐÀN TRAO ĐỔI CHO SINH VIÊN CÔNG NGHỆ
THÔNG TIN” làm đề tài báo cáo thực tập.

Mục tiêu nghiên cứu
- Thu thập các thông tin, các báo cáo và giấy tờ có liên quan đến các hoạt
động của một trang web diễn đàn (Ví dụ như facebook, qoora, reddit, v.v).
-

Xây dựng hệ thống website chạy trên mạng Internet, bất cứ nơi đâu

có Internet đều có thể truy cập và quản lý. Hệ thống sẽ là môi trường đễ các sinh
viên Công nghệ hoặc người dùng công nghệ tham gia bàn bạc, thảo luận và chia
sẻ tài nguyên.
Nội dung báo cáo gồm có 04 chương:
 Chương 1: Khảo sát
Khảo sát thực trạng diễn đàn hiện nay, cách mà sinh viên trao đổi
thơng tin trong khoa. Phân tích những vấn đề tồn đọng và lý do
chọn đề tài lần này.
5

HTTP://FITC.SITE


 Chương 2: Giới thiệu PHP và Laravel Framework
Tìm hiểu về ngôn ngữ PHP, Framework Laravel, diễn đàn, khái
quát lên được ưu nhược điểm và tầm quan trọng của các công nghệ
này trong việc xây dựng các hệ thống website hiện nay.
 Chương 3: Phân tích, thiết kế hệ thống
Từ việc khảo sát hệ thống ban đầu, nội dung ở phần này tập trung
xác định các yêu cầu mà hệ thống cần đáp ứng, xác định các chức
năng cần có, luồng dữ liệu và các thực thể trong hệ thống từ đó
thiết kế CSDL, xử lý các chức năng, thiết kế chương trình
 Chương 3: Thực nghiệm xây dựng hệ thống

Từ dữ liệu có được qua phần phân tích, thiết kế hệ thống và ứng dụng từ
việc tìm hiểu framework laravel, nội dung chương 3 tập trung xác định
môi trường triển khai và thiết kế hệ thống, đưa ra kết luận và rút kinh
nghiệm.

6

HTTP://FITC.SITE


Recommandé pour toi

1

Suite du document ci-dessous

W142 - thực hành
Công nghệ thông tin

26

Tổng ôn ngữ pháp tiếng anh Chuyên ĐỀ 16 - LIÊN TỪ
Công nghệ thông tin

22

100% (1)

Trai tim co anh - bài thực hành xử lý ảnh
Công nghệ thông tin


3

Aucun

Aucun

Create database quanlinhasach
Công nghệ thông tin

Aucun


LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tôi. Các số liệu,
kết quả nêu trong báo cáo là trung thực và chưa từng được ai cơng bố trong bất
kỳ cơng trình nào khác. Tơi xin cam đoan rằng các thơng tin trích dẫn trong báo
cáo đều đã được chỉ rõ nguồn gốc.

Hải Phòng, tháng 3 năm 2023
Tác giả

Vũ Hoài Nam

7

HTTP://FITC.SITE


LỜI CẢM ƠN

Trước hết, em xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS Lê Đắc
Nhường - người đã trực tiếp hướng dẫn và tận tình giúp đỡ em hoàn thành thực
tập tốt nghiệp này.
Em xin chân thành cảm ơn sự giúp đỡ của toàn thể các giảng viên khoa
cơng nghệ thơng tin, trường Đại học Hải Phịng, cũng như sự chỉ bảo của các
anh chị tại công ty “CƠNG TY DỊCH VỤ MOBIFONE 5 HẢI PHỊNG” nơi
em thực tập đã dìu dắt, dạy dỗ em cả về kiến thức chuyên môn và tinh thần học
tập độc lập, sáng tạo để em có được kiến thức thực hiện báo cáo của mình.
Cuối cùng, em xin bày tỏ lịng biết ơn sâu đậm của mình tới gia đình, bạn
bè những người luôn sát cánh bên em, tạo mọi điều kiện tốt nhất để em có thể
thực hiện đồ án tốt nghiệp của mình.
Trong quá trình thực hiện báo cáo tốt nghiệp, mặc dù đã cố gắng hết sức
song do thời gian và khả năng có hạn nên em khơng thể tránh khỏi những thiếu
sót. Vì vậy, em rất mong nhận được sự thông cảm, chỉ bảo và giúp đỡ của các
thầy giáo, cô giáo và các bạn.
Một lần nữa em xin chân thành cảm ơn!

8

HTTP://FITC.SITE


NHẬN XÉT

9

HTTP://FITC.SITE


CHƯƠNG 1 : KHẢO SÁT

1. KHÁI NIỆM DIỄN ĐÀN CÔNG NGHỆ
1.1. Diễn đàn cơng nghệ là gì?
Diễn đàn cơng nghệ thông tin về bản chất giống như các diễn đàn thơng
thường:
 là website nơi mà mọi người có thể cùng nhau thảo luận, trao đổi ý
kiến, chia sẻ kiến thức về một chủ đề nào đó cùng quan tâm. Là
hình thức thảo luận không trực tiếp, bài viết hoặc ý kiến của bạn có
thể đưa lên nhận được phản hồi ngay, cũng có khi vài ngày hoặc lâu
hơn.
 Một diễn đàn chứa nhiều chuyên mục, trong chuyên mục chứa
nhiều diễn đàn con ( chứa các chủ đề). Chủ đề được tạo ra bởi
nhiều bài viết được các thành viên đăng lên.
 Trang chủ diễn đàn là danh sách chuyên mục và diễn đàn, có thơng
tin số lượng bài viết và số lượng chủ đề.

(diễn đàn stackoverflow nổi tiếng giới lập trình)

10

HTTP://FITC.SITE


1.2. Các thành phần của một diễn đàn công nghệ
Một diễn đàn công nghệ - hay bất kỳ các diễn đàn nào khác đều phải tuân
thủ đạt đủ các yêu cầu về thành phần như sau:
 Người dùng
Người dùng có thể hiểu là bất kỳ người nào truy cập vào diễn đàn. Một
người dùng ẩn danh thì đựoc gọi là "Khách". Thông thường, các diễn
đàn bắt buộc người dùng phải tạo, và đăng nhập dưới một tài khoản thì
mới có những quyền tạo bài viết, truy cập một số nội dung của diễn đàn

hoặc sử dụng một số tính năng khác.
Tài khoản người dùng cũng có thể được chia thành các thứ hạng (level)
khác nhau, các thứ hạng sẽ được hiển thị cơng khai và có những đặc
quyền riêng do cấu hình của diễn đàn.
 Quản trị viên
Quản trị viên (Admin) là tài khoản có quyền cao nhất. Tài khoản admin
có tất cả các quyền trong diễn đàn từ việc quản lý tài khoản, quản lý cấu
trúc hoặc thậm chí là cài đặt cấu hình diễn đàn. Thơng thường, tài khoản
admin đầu tiên chính là tài khoản được tạo lúc cài đặt diễn đàn, sau đó,
tài khoản admin này sẽ tạo ra hoặc phân quyền admin cho các tài khoản
khác.
 Điều hành viên
Điều hành viên (Mod hay Moderator) là các tài khoản có quyền hành
quản lý sự hoạt động của diễn đàn bao gồm phê duyệt, xóa các bài viết
trong diễn đàn đến việc chặn (ban) thành viên. Mỗi điều hành viên có thể
chỉ có quyền hạn quản lý trong mỗi đề mục, diễn đàn con hoặc cũng có
thể có quyền hạn trên toàn bộ diễn đàn tùy vào tùy chọn của quản trị
viên.
 Đề mục
Đề mục (tiếng Anh category) là một nhóm các bài viết có nội dung gần
giống nhau gộp lại.
 Bài viết

11

HTTP://FITC.SITE


Bài viết (tiếng Anh post) thường được tạo ra dưới một chủ đề nào đó, nơi
mà người dùng tham gia bình luận & bàn bạc nhằm giải quyết vấn đề mà

người dùng khởi tạo bài viết.
 Tags
Thẻ ( Tiếng anh gọi là Tags) nhằm gộp các bài viết theo loại (gần giống
như Đề mục) nhưng có phạm vi hẹp hơn, nhằm giúp người dùng xác
định được mục tiêu mà bài viết nhắm tới. Ví dụ như hỏi đáp, tin tức, v.v.

2. TÌNH HÌNH CÁC DIỄN ĐÀN TẠI VIỆT NAM HIỆN NAY
Việt Nam được xem như là nước có tỉ lệ người sử dụng MXH đứng top
thế giới về tỉ lệ / dân số. Do vậy, việc tạo ra các “sân chơi” như các diễn đàn để
người dùng thoải mái bàn bạc và trao đổi thông tin đang là nhu cầu cực kỳ cấp
thiết trong thời kỳ công nghệ phát triển vượt bậc như hiện nay.
Có thể kể đến một vài diễn đàn công nghệ phổ biến, được nhiều người sử
dụng có thể kể đến như:
 Tinh tế: Diễn đàn Tinh Tế được ra mắt lần đầu vào năm 2006 bởi hai
nhà sáng lập là Trần Mạnh Hiệp và Đinh Hữu Thành. Tên diễn đàn bắt
nguồn từ ý tưởng của nhà sáng lập "domain ngắn, gõ lên đẹp và tiếng
Việt, không có những yếu tố thừa". Tính đến năm 2015, Tinh Tế là một
trong những diễn đàn về công nghệ thông tin lớn nhất Việt Nam với
khoảng 2 triệu thành viên hoạt động thường xuyên, 21,7 triệu bài viết và
hơn 1 triệu chủ đề. Năm 2019, diễn đàn chính thức chuyển sang hoạt
động dưới hình thức mạng xã hội.
Chủ đề trên diễn đàn tập trung chủ yếu vào công nghệ thông tin nói
chung và điện thoại, đồ gia dụng nói riêng

12

HTTP://FITC.SITE


 Voz: Viết tắt của Vietnam Overclocking Zone – Một diễn đàn thuần về

các mẹo sử dụng và éo xung CPU nhằm tạo ra hiệu năng cao cho máy
tính. Được thành lập từ cuối năm 2001, có thể nói VOZ đang là diễn đàn
có tuổi đời lâu nhất tại Việt Nam

13

HTTP://FITC.SITE


 Viblo: Dự án Viblo (Vietnam IT Blog) được khởi động với mục đích tạo
ra một cộng đồng nơi thành viên có thể chia sẻ, học hỏi kiến thức Cơng
nghệ thông tin bằng tiếng mẹ đẻ.
Viblo trong vài năm trở lại đây đang dần trở thành một cơn sốt trong giới
lập trình Việt Nam bởi tính dễ tiếp cận thơng tin và giao diện đẹp mắt.
Với việc chia danh mục theo trang cá nhân, tại đây người dùng có thể
khởi tạo các khố học miễn phí và người dùng cũng có thể dễ dàng tìm
kiếm và học theo một khung giảng dạy đúng lộ trình và đạt hiệu suất
cao.

Nhận Xét: Nhìn chung những diễn đàn cơng nghệ tại Việt Nam rất lớn, có
tuổi đời và tệp người dùng vơ cùng lớn. Nhưng khơng phải do vậy mà chúng
khơng có điểm hạn chế. Một diễn đàn công nghệ lớn sẽ phải đảm bảo độ ổn định
cao nhất. Tức là mọi điều chỉnh hay cập nhật đều vơ cùng khó khăn và tốn kém.
Hầu hết các diễn đàn hiện hữu được xây dựng trên C# - Một ngơn ngữ có tuổi
đời rất lâu và đã vô cùng cũ. Nên hầu như các diễn đàn nêu trên đều giữ những
giao diện cũ hoặc khơng thêm bất kỳ một tính năng nào mới kể từ khi ra mắt.
3. TÌNH HÌNH TRAO ĐỔI THƠNG TIN CỦA SINH VIÊN KHOA
CÔNG NGHỆ THÔNG TIN ĐẠI HỌC HẢI PHỊNG.
Sinh viên trong khoa cơng nghệ thơng tin đại học Hải Phòng hiện nay hầu
hết đều diễn ra trên các mạng xã hội, các group trên facebook hoặc các box chat


14

HTTP://FITC.SITE


do từng lớp lập ra theo hình thức tự phát, khơng có tổ chức hoặc khơng có sự
quản lý một cách chặt chẽ
Hầu hết sinh viên khoa trao đổi thông tin theo hình thức trực tiếp, ví dụ
như trên lớp học hoặc theo hình thức gián tiếp như nhắn tin, chat trên các mạng
xã hội. Hành vi này mang lại lợi ích cực kỳ cao do câu hỏi được trả lời ngay lập
tức, giải quyết vấn đề gọn lẹ. Nhưng nhược điểm là lượng kiến thức trao đổi
mang tính đơn lẻ, không thể tái sử dụng hoặc không thể phổ biến cho các sinh
viên khác.
Ví dụ: Sinh viên A hỏi sinh viên B cách giải thuật toán, sinh viên B đã trả
lời cặn kẽ câu hỏi của sinh viên A và đã giải quyết được bài toán của sinh viên
A. Vấn đề đặt ra ở đây là khi có một sinh viên khác ( tạm đặt sinh viên C) cũng
gặp vấn đề tương tự. thì việc duy nhất sinh viên C có thể làm là đi hỏi sinh viên
A hoặc sinh viên B. Khi này sẽ xảy ra hiện tượng chồng chéo thông tin, sinh
viên B hoặc sinh viên A phải trả lời câu hỏi một lần nữa, và nếu sau này có sinh
viên DEF… cũng hỏi câu hỏi đó thì lượng thơng tin sẽ tăng theo cấp số nhân,
Để giải quyết vấn đề đó, nhiều sinh viên lựa chọn lập các nhóm chat hoặc
group nhằm tổng hợp lại thơng tin. Nhưng vấn đề khác lại xuất hiện: Chúng cực
kỳ khó để phân loại và truy vấn thơng tin, do các bài viết chỉ được sắp xếp theo
thời gian hoặc lượt tương tác.
Một số sinh viên có sử dụng các diễn đàn quốc tế như Github,
StackOverFlow nhưng nhìn chung là thơng tin đều mang tính quy mơ lớn, và
đặc biệt là hầu hết dựa trên nền Tiếng Anh – thứ mà khơng phải ai cũng có thể
hiểu cặn kẽ được chúng.
Một số chọn các diễn đàn của Việt Nam để giải quyết, nhưng vì là diễn

dàn lớn nên câu hỏi thường chỉ ueu tiên nhưng câu hỏi mang tính quy mô lớn,
những câu hỏi đại khái như “làm thế nào để chạy dòng code này, làm thế nào để
fix lỗi kia” hâu như sẽ bị bỏ qua do chúng chỉ giải quyết vấn đề cho một vài
người mà không mang tính tiếp cận thơng tin lớn – thứ mà các diễn đàn lớn hiện
nay thường làm.
15

HTTP://FITC.SITE


4. GIẢI QUYẾT VẤN ĐỀ
Để giải quyết vấn đề trước hết ta phải xác định những điều kiện đã liệt kê
bên trên, bao gồm:


Ngơn ngữ là tiếng Việt



Sử dụng quy mơ trường đại học



Dễ tiếp cận (UX/UI Đẹp)



Đầy đủ tính năng của một diễn đàn




Dễ nâng cấp hoặc sửa đổi trong tương lai



Nhẹ, phản hồi nhanh

Chương 2 của báo cáo sẽ đi sâu vào ngôn ngữ và framework, cách thức tổ
chức dữ liệu của chúng để tạo nên một diễn đàn hoàn chỉnh.

CHƯƠNG 2: GIỚI THIỆU PHP – LARAVEL
1. PHP
1.1. PHP Là gì?
PHP là từ viết tắt của thuật ngữ Personal Home Page. Đây là một dạng mã
lệnh hoặc một chuỗi ngơn ngữ kịch bản. Trong đó, ngơn ngữ PHP chủ yếu được
phát triển để dành cho những ứng dụng nằm trên máy chủ. Mỗi khi các lập trình
viên PHP viết các chương trình thì các chuỗi lệnh sẽ được chạy ở trên server, từ
đó sinh ra mã HTML. Nhờ vậy mà những ứng dụng trên các website có thể chạy
được một cách dễ dàng.

16

HTTP://FITC.SITE


(Một dịng lệnh đơn giản của PHP)

Ngơn ngữ PHP thơng thường sẽ phù hợp với việc lập trình website bởi nó
có thể dễ dàng kết nối với các website khác có sử dụng HTML để chạy trên các
trình duyệt web. Vì vậy, đây là ngơn ngữ lập trình được người dùng đánh giá là

khá dễ đọc. Ngôn ngữ PHP cũng trở thành ngôn ngữ web dev phổ biến mà các
lập trình viên phải học trước khi bắt đầu vào nghề.
1.2 Khả năng của PHP
Trong hoạt động công nghệ thông tin, ngơn ngữ lập trình PHP thường sẽ
tập trung vào xây dựng kịch bản hoạt động từ hệ thống máy chủ. Vì vậy, bạn có
thể thực hiện các thao tác khác nhau bên cạnh việc tạo nên các dữ liệu, nhận dữ
liệu cookie trong quá trình làm việc, nội dung website. Tuy nhiên, cơng dụng
của ngơn ngữ PHP cịn rất nhiều.
Một số ứng dụng của PHP như:
 Thiết lập các chương trình cho hệ thống máy chủ: Ứng dụng chủ yếu của
PHP đó chính là việc xây dựng nên các chương trình dành cho các server
máy chủ. Để có thể viết nên các chương trình chạy được trên máy chủ thì
các lập trình viên sẽ phải thực hiện các cơng việc như: xây dựng máy
chủ web, phân tích cú pháp ngơn ngữ lập trình PHP, trình duyệt web.
Các lập trình viên có thể xây dựng output này bằng các trình duyệt web
phổ biến.

17

HTTP://FITC.SITE


 Tạo các dịng tập lệnh: Các ngơn ngữ PHP Dev có thể tạo nên dịng tập
lệnh để chạy các chương trình PHP mà khơng cần bất cứ một máy chủ
nào. Lập trình này được sử dụng trên các hệ điều hành như: Các trình lập
tác vụ trên Windows, Linux.
 Xây dựng ứng dụng làm việc: Từ những điểm mạnh vốn có của PHP, có
thể đây chưa là phương thức tốt nhất để xây dựng ứng dụng phần mềm
nhưng nếu như muốn đi sâu hơn vào tạo lập phần mềm từ PHP thì bạn
cũng có thể sử dụng PHP – GTK như một ngôn ngữ nền tảng để xây

dựng phần mềm của riêng mình. PHP – GTK là nhánh mở rộng của ngơn
ngữ lập trình này, nó cũng khơng có sẵn trong các phiên bản hiện nay.
 Hỗ trợ cho một loại cơ sở dữ liệu khác nhau: Đây chính là ứng dụng
mạnh nhất của PHP. Nếu trang web được hỗ trợ cơ sở dữ liệu tốt sẽ giúp
ích rất nhiều đến việc vận hành cũng như backup dữ liệu nếu khơng may
xảy ra tình huống tấn cơng an ninh mạng xảy ra.
 Hiện nay, ngôn ngữ PHP được sử dụng trên hầu hết các hệ điều hành phổ
biến trên thị trường như: Microsoft Windows, Linux, macOS…. Vì vậy,
các DEV có thể tự quyết định, lựa chọn cho mình một hệ điều hành tự
lập trình. Như vậy, ngơn ngữ lập trình PHP đã mang lại rất nhiều lợi ích
cho hoạt động công nghệ thông tin hiện nay.

1.3. Ưu nhược điểm của PHP
a. Ưu diểm
Sử dụng mã nguồn mở: Việc cài đặt cũng như sử dụng ngơn ngữ lập trình
PHP rất dễ dàng và hồn tồn miễn phí dành cho tất cả mọi người. Vì vậy nên
ngơn ngữ này ln được cài đặt rất nhiều trên các Web Server như: IIS, Apache,
Nginx.
Có tính cộng đồng cao: Do PHP là mã nguồn mở, lại dễ sử dụng nên ngôn
ngữ này được ưa chuộng từ cộng đồng các lập trình viên. Cộng đồng ngơn ngữ
này rất rộng rãi và đảm bảo được tính chất lượng. Đã có khơng ít diễn đàn, Blog,
website trong và ngồi nước giải thích về ngơn ngữ này nên khả năng tiếp cận
của mọi người sẽ dễ dàng và nhanh chóng hơn.
18

HTTP://FITC.SITE


Hệ thống thư viện phong phú: Do lượng người dùng nhiều nên thư viện
của ngôn ngữ PHP ngày càng được phát triển và mở rộng. Với thư viện Code

hay hàm phong phú sẽ giúp cho việc học tập hoặc viết các ứng dụng PHP trở
nên dễ dàng và nhanh chóng. Do đó, đây chính là đặc điểm làm cho ngơn ngữ
này trở nên nổi bật. Ngơn ngữ PHP có thể kết hợp với những cơ sở dữ liệu lớn
hơn như: Oracle, MySQL, Cassandra.
Tính bảo mật: Do đây là mã nguồn mở, đồng thời được sự hỗ trợ của cộng
đồng các lập trình nên ngơn ngữ lập trình PHP sẽ an toàn khi sử dụng. Khi kết
hợp với kỹ thuật bảo mật ở các tầng khác nhau thì ngơn ngữ lập trình sẽ chắc
chắn và đảm bảo được hoạt động của website.
b. Nhược điểm
PHP khơng phải là ngơn ngữ script phía server duy nhất có sẵn mà cịn rất
nhiều ngơn ngữ khác. Tuy nhiên, nó lợi thế hơn các đối thủ cạnh tranh nếu chạy
trang web WordPress.
Do WordPress được xây dựng dựa trên việc sử dụng PHP, vì vậy khi sử
dụng ngôn ngữ này sẽ giúp cải thiện đáng kể số lượng tùy chỉnh có thể có trên
trang web. Bạn có thể dùng nó để sửa đổi Themes có sẵn và Plugins hoặc tự tạo
Plugin. Vì vậy, nếu muốn trở thành một nhà phát triển WordPress thì bạn bạn bắt
buộc phải học PHP.
Một số lý do khiến cho PHP là ngôn ngữ tuyệt vời:
 Dễ học: Bạn có thể học một cách dễ dàng bởi nó có tài liệu tuyệt vời về
các chứng năng.
 Sử dụng rộng rãi: PHP được sử dụng để tạo nên các nền tảng như: Blogs,
thương mại điện tử, phương tiện truyền thông xã hội… Các thống kê cho
thấy có 79% các trang web đều sử dụng PHP.
 Chi phí thấp: PHP là mã nguồn mở và bạn có thể sử dụng nó miễn phí.
 Cộng đồng lớn: Khi gặp phải bất cứ một vấn đề gì với nó, bạn sẽ khơng
phải lo lắng bởi có rất nhiều Blog PHP trên internet để bạn trao đổi và
hỏi.

19


HTTP://FITC.SITE


 Có khả năng tích hợp với cơ sở dữ liệu: Ví dụ như: Oracle, Sybase,
MySQL, DB2…

2. LARAVEL FRAMEWORK (BACK-END)
(Framework là các đoạn code đã được viết sẵn, cấu thành nên một bộ
khung và các thư viện lập trình được đóng gói. Chúng cung cấp các tính năng có
sẵn như mơ hình, API và các yếu tố khác để tối giản cho việc phát triển các ứng
dụng web phong phú, năng động. Các framework giống như là chúng ta có
khung nhà được làm sẵn nền móng cơ bản, bạn chỉ cần vào xây dựng và nội thất
theo ý mình.)
Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây
dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC.
Laravel giúp cho người mới bắt đầu tập trung vào việc học tập dễ dàng và
giảm thiểu các bước giữa bắt đầu một ứng dụng mới đến khi phát hành. Tất cả
các tác vụ phổ biến nhất trong việc xây dựng các ứng dụng web, từ tương tác cơ
sở dữ liệu, xác thực đến hàng đợi, đến email, bộ nhớ đệm, được thực hiện đơn
giản hơn bởi các thành phần mà Laravel cung cấp.

(Php artisan – một hệ thống các mã được laravel dựng sẵn)

Laravel cung cấp tồn bộ hệ sinh thái các cơng cụ để xây dựng và khởi
chạy các ứng dụng một cách dễ dàng. Chúng ta có Homestead và Valet để phát
triển trên môi trường local, Forge cho quản lý máy chủ và Envoyer để triển khai
nâng cao. Và có một bộ gói bổ trợ: Cashier cho thanh tốn và đăng ký, Echo cho
20

HTTP://FITC.SITE



WebSockets, Scout cho tìm kiếm, Passport để xác thực API, Socialite để đăng
nhập bằng mạng xã hội và Spark để khởi động SaaS của dự án. Laravel đang cố
gắng loại bỏ công việc lặp đi lặp lại khỏi các công việc của nhà phát triển để họ
có thể làm một cái gì đó độc đáo.
Tiếp theo, Laravel tập trung vào “Convention over configuration”, – nghĩa
là nếu lập trình viên sẵn sàng sử dụng cấu hình mặc định của Laravel, bạn sẽ
phải làm việc ít hơn nhiều so với các framework khác yêu cầu chúng ta phải
khai báo tất cả các cài đặt của mình ngay cả khi chúng ta sử dụng cấu hình mặc
định. Các dự án được xây dựng trên Laravel mất ít thời gian hơn so với các dự
án được xây dựng trên hầu hết các framework PHP khác.
Laravel có khả năng mở rộng cao. Nhờ sự hỗ trợ tích hợp các hệ thống bộ
nhớ cache phân tán, nhanh chóng, các ứng dụng Laravel có khả năng giải quyết
hàng triệu u cầu mỗi tháng. Ngồi ra nó cịn cung cấp nền tảng phát triển
không máy chủ Vapor dựa trên AWS .
Laravel có một hệ sinh thái và cộng đồng rộng lớn
Laravel được hỗ trợ bởi một cộng đồng nhà phát triển rộng lớn. Do là một
framework được sử dụng nhiều nhất, địi hỏi nó phải chứa các gói thư viện
khổng lồ bao gồm cả gói chính thức và gói được cung cấp từ bên thứ ba.
Các gói chính thức của Laravel bao gồm xác thực (Auth), quản lý máy
chủ, thanh tốn đăng ký, kiểm tra trình duyệt và tự động hóa, v.v. Các gói của
bên thứ ba có sẵn trên một số trang web, bao gồm Packalyst và Laravel News .
Ngồi ra, Laravel cịn cung cấp một diễn đàn hỗ trợ giải đáp thắc mắc là
Laravel.io, The Laravel subreddit và Laracasts, bất kỳ nhà phát triển nào có câu
hỏi gì đều có thể truy cập vào đây để tìm thơng tin.
Chức năng của Laravel.
Laravel cung cấp q nhiều chức năng mạnh mẽ, do đó khơng thể liệt kê
hết, sau đây là một số chức năng tiêu biểu của Laravel:
 Xử lý đường dẫn (route)


21

HTTP://FITC.SITE


Laravel có khả năng xử lý tuyến đơn giản nhờ vào việc sử dụng tên thay
vì đường dẫn. Đồng thời nó giúp duy trì ứng dụng dễ dàng bởi tên tuyến
có thể thay đổi tại vị trí nhất định thay vì thay đổi trong cả quá trình xây
dựng. Tất cả các tuyến giao diện web trong một ứng dụng Laravel được
đăng ký trong tệp ROUTES/Web.php.
 Bảo mật
Laravel có một số tính năng bảo mật bao gồm xác thực người dùng, ủy
quyền vai trò người dùng, xác minh email, dịch vụ mã hóa, băm mật
khẩu và tính năng đặt lại mật khẩu.
 Migration
Laravel cung cấp kiểm soát phiên bản cho cơ sở dữ liệu ứng dụng bằng
cách sử dụng Migration. Migration theo dõi các cơ sở dữ liệu đã được
sửa đổi theo thời gian, giúp phá hủy hoặc tạo lại cơ sở dữ liệu dễ dàng
hơn khi cần thiết.
 Tạo khuôn mẫu
Laravel sử dụng Blade làm công cụ tạo khuôn mẫu PHP, giúp phân chia
nghiệp vụ từ khuôn mẫu HTML, giúp dễ bảo trì hơn. So với các cơng cụ
tạo khn mẫu khác thì Blade chiếm ưu thế hơn bởi nó nhiều tính năng
đồng thời cho phép sử dụng mã PHP thuần túy, các cơng cụ khác thì
khơng.
 Sessions (Phiên)
Laravel lưu trữ thông tin người dùng theo yêu cầu ở dạng phiên. Cookie
là một ví dụ điển hình.
 Xác thực dữ liệu

Laravel giúp việc xác thực dữ liệu người dùng mới trở nên đơn giản .
Laravel bao gồm một số quy tắc xác thực dữ liệu, với các thơng báo lỗi
có thể tùy chỉnh.
 Xử lý bộ nhớ cache
Nhằm tối ưu hóa thời gian xử lý của ứng dụng, Laravel đã tích hợp bộ
nhớ đệm. Trong đó là API, ngồi ra cịn có bên thứ ba như Memcached
và Redis.

22

HTTP://FITC.SITE


 Xử lý lỗi
Laravel hỗ trợ thiết lập xử lý lỗi tự động, khi các ứng dụng chạy nếu có
lỗi, chế độ gỡ lỗi sẽ gửi thông báo chi tiết về các lỗi xảy ra.

 Kiểm thử
Để đảm bảo chất lượng sản phẩm, Laravel hỗ trợ các loại kiểm thử như:
kiểm thử đơn vị, kiểm tra các phần nhỏ, tách biệt của mã ứng dụng, cũng
như kiểm tra tính năng, kiểm tra các phần mã lớn hơn và chức năng cấp
cao hơn.
 Quản lý tệp và lưu trữ
Laravel sử dụng gói Flysystem PHP, có thể làm việc với nhiều hệ thống
tệp khác nhau từ hệ thống tệp cục bộ đến lưu trữ dựa trên đám mây như
Amazon S3. Laravel cũng cung cấp tính năng truyền tệp với Giao thức
truyền tệp SSH (SFTP) .
 E-mail
Laravel bao gồm một API email dựa trên thư viện SwiftMailer, cho phép
gửi email thông qua một dịch vụ được lựa chọn. Laravel hỗ trợ tệp đính

kèm email và email chờ.
 Thông báo
Laravel hỗ trợ gửi thông báo qua một số kênh, cho dù là các kênh nổi
tiếng như SMS hay Slack, hoặc sử dụng các kênh do cộng đồng Laravel
phát triển.

3. FILAMENT, LIVEWIRE, BREEZE (FRONT-END)
3.1. Filament
Filament cung cấp một bộ sưu tập các công cụ đẹp mắt, giúp lập trình
viên nhanh chóng tương tác được với cơ sở dữ liệu.
Filament được phát triển dựa trên Full-stack framework Livewire giúp tạo
và quản lý dữ liệu theo dạng admin panel đẹp mắt và cực kỳ dễ sử dụng.
Filament cung cấp một Interface cho người dùng, người dùng chỉ cần xây
dựng Model và cung cấp một số điều kiện trong Controller là đã có thể tạo một
trang admin panel hoàn chỉnh và đẹp mắt.
23

HTTP://FITC.SITE


3.2 Livewire
Livewire là một full-stack framework cho Laravel giúp việc xây dựng các
giao diện động trở nên đơn giản hơn. Đây là một stack tuyệt vời để lựa chọn nếu
bạn muốn xây dựng một SPA nhưng cảm thấy khó khăn khi tìm hiểu về các
framework như React.js và Vue.js.
Khơng giống như trước đây, ví dụ để tạo một thao tác hiểm thị một dữ
liệu trong Database, ta cần phải tạo hàng chục file khác nhau từ cơ sở dữ liệu,
connect.php, view, … cực kỳ lằng nhằng và khó quản lý. Livewire thì khác, hãy
nhìn đoạn mã dưới đây để hiểu rõ sự khác biệt:
use Livewire\Component;


class SearchUsers extends Component
{
public $search = '';

public function render()
{
return view('livewire.search-users', [
'users' => User::where('username', $this->search)->get(),
]);
}
}

(SeachUserController)

<div>


<ul>
@foreach($users as $user)
<li>{{ $user->username }}</li>

24

HTTP://FITC.SITE


×