Lập trình trang web bán quần áo bằng PHP laravel. Xã hội hiện đang trên đà phát triển vượt trội về mặt thương mại điện tử. Nhu cầu mua bán online đang là xu hướng hàng đầu trong dịch vụ thương mại điện tử. Vì những nhu cầu cấp thiết trên nên đã sinh ra hàng trăm, hàng nghìn thậm chí hàng triệu website bán hàng để thỏa mãn nhu cầu mua – bán của người mua và người bán. Chính vì điều đó nhóm chúng em quyết định xây dựng một website bán quần áo. Hiện nay có thể xem công nghệ xây dựng website bằng Laravel framework rất phổ biến. Laravel framework dùng mã nguồn mở miễn phí, vì thế nên Laravel framework có thể được cài đặt trên hầu hết các Web Server thông dụng hiện nay như Apache, IIS… Dễ học khi đã biết HTML, C, OOP(Vì php được phát triển trên nền tảng C, OOP), có nhiều Web Server có cấu hình đơn giản như XAMPP, WAMPP,… thư viện phong phú(Joomla, wordpress…), có tính bảo mật, thích hợp cho làm việc nhóm. Tuy nhiên ngoài những ưu điểm, bên cạnh đó Laravel framework còn có nhược điểm là chỉ chạy trên ứng dụng web, mã nguồn không đẹp và hiếm tool.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH
KHOA: CÔNG NGHỆ THÔNG TIN
*o*o*o**o*o*o*
BÀI BÁO CÁO
ĐỀ TÀI:
Sinh viên thực hiện:
Giảng viên hướng dẫn : Thầy Lưu Quang Phương
HỒ CHÍ MINH – Năm 2022
Trang 2MỤC LỤCY
DANH MỤC HÌNH ẢNH 4
LỜI MỞ ĐẦU 5
PHẦN 1 MỞ ĐẦU 5
1 Lý do chọn đề tài 5
2 Mục đích nghiên cứu (các kết quả cần đạt được) 5
3 Đối tượng và phạm vi nghiên cứu 5
4 Phương pháp nghiên cứu 5
PHẦN 2 ĐỀ CƯƠNG CHI TIẾT 6
CHƯƠNG 1 ĐẶT VẤN ĐỀ 6
1 PHP Framework là gì? 6
2 Tại sao nên sử dụng Laravel Framework? 6
CHƯƠNG 2 GIỚI THIỆU VỀ LARAVEL 7
1 Cấu trúc thư mục Laravel 7
2 Cài đặt Laravel 8
2.1 Cài composer 8
2.2 Cài đặt Laravel 8
3 Route trong Laravel Framework 9
4 View trong Laravel Framework 10
5 Controller trong Laravel Framework 10
5.1 Khai báo Controller trong Laravel Framework 10
5.2 Chạy Controller theo phương thức Route::get 11
6 Kết nối cơ sở dữ liệu 11
6.1 Cấu hình kết nối cơ sở dữ liệu trong Laravel Framework 11
Trang 37 Sử dụng Migrations và Schema Builder 14
CHƯƠNG 3: GIAO DIỆN – THIẾT KẾ CHỨC NĂNG WEBSITE 15
1 Đăng ký/ Đăng nhập 15
2 Quản lý các danh mục trong admin 17
3 Load Slider 21
4 Sản phẩm 21
5 Đặt hàng 24
6 Mail 25
KẾT LUẬN 26
Trang 4Hình 1 1 Cấu trúc thư mục Laravel Framework 8
YHình 2 1 Cài đặt Composer 8
Hình 2 2 Cài đặt laravel 9
YHình 3 1 Kết nối cơ sở dữ liệu 12
YHình 4 1 Đăng nhập admin 15
Hình 4 2 Đăng nhập sai 16
Hình 4 3 Đăng ký 17
Hình 4 4 Mã hóa mật khẩu 17
YHình 5 1 Thêm danh mục 18
Hình 5 2 Danh sách danh mục 18
Hình 5 3 Danh sách sản phẩm 19
Hình 5 4 Thêm sản phẩm 19
Hình 5 5 Danh sách slider 20
Hình 5 6 Thêm slider 20
YHình 6 1 Load slider 21
YHình 7 1 Load sản phẩm 22
Hình 7 2 Phân trang theo danh mục 22
Hình 7 3 Chi tiết sản phẩm 23
Hình 7 4 Thêm sản phẩm vào giỏ hàng 24
YHình 8 1 Danh sách đơn hàng 25
Hình 8 2 Xử lý thông tin đơn 25
YHình 9 1 Nhận mail khi có đơn hàng 27
Trang 5vì điều đó nhóm chúng em quyết định xây dựng một website bán quần áo.
- Hiện nay có thể xem công nghệ xây dựng website bằng Laravel framework rất phổ biến Laravel framework dùng mã nguồn mở miễn phí, vì thế nên Laravel framework
có thể được cài đặt trên hầu hết các Web Server thông dụng hiện nay như Apache, IIS… Dễ học khi đã biết HTML, C, OOP(Vì php được phát triển trên nền tảng C, OOP), có nhiều Web Server có cấu hình đơn giản như XAMPP, WAMPP,… thư viện phong phú(Joomla, wordpress…), có tính bảo mật, thích hợp cho làm việc nhóm Tuy nhiên ngoài những ưu điểm, bên cạnh đó Laravel framework còn có nhược điểm là chỉ chạy trên ứng dụng web, mã nguồn không đẹp và hiếm tool
2 Mục đích nghiên cứu (các kết quả cần đạt được).
- Xây dựng website kinh doanh quần áo
Giới thiệu và trình bày được các mặt hàng
Nhanh chóng hiệu quả
Đảm bảo chính xác, bảo mật cao, tiện lợi và dễ dàng sử dụng cho khách hàng
Thuận tiện cho việc bán và mua hàng
3 Đối tượng và phạm vi nghiên cứu.
- Đối tượng nghiên cứu
4 Phương pháp nghiên cứu.
Phương pháp thống kê, thu nhập thông tin, số liệu
Trang 6 Phương pháp phân tích và tổng hợp tài liệu để xây dựng một website.
Quá trình tin học để xây dựng website thương mại điện tử
PHẦN 2 ĐỀ CƯƠNG CHI TIẾT
CHƯƠNG 1 ĐẶT VẤN ĐỀ
1 PHP Framework là gì?
- PHP Framework là một bộ thư viện đã được tạo dựng sẵn, bao gồm rất nhiều chứcnăng và các module để xây dựng project Ngoài ra, PHP Framework còn giúp việcphát triển các project nhanh hơn, dễ dàng hơn Đồng thời nó còn làm hạn chế những
lỗi phát sinh cơ bản và làm tăng sự ổn định của các ứng dụng
2 Tại sao nên sử dụng Laravel Framework?
-Laravel là một trong các PHP Framework phổ biến nhất trong giới Developer
Tìm hiểu về Laravel cũng rất dễ dàng vì mỗi bản phát hành đều được hướng dẫn đầy đủ với các tài liệu, tutorial và blog được cập nhật thường xuyên
Laravel có nhiều tính năng tuyệt vời và sáng tạo để lập trình Chẳng hạn, giao diệncommand-line Artisan cung cấp một số lệnh hữu ích khi lập trình Laravel cũng có một công cụ tạo template mạnh mẽ, cho phép bạn làm các tác vụ phổ biến như authentication, caching, sessions, RESTful routing…
Laravel cũng có một hệ sinh thái rất lớn với platform lưu trữ và deployment Bất
cứ Developer nào dù chưa từng học qua PHP Framework cũng có thể học rất nhanh Laravel
Một số ưu điểm của Laravel bao gồm:
Trang 7CHƯƠNG 2 GIỚI THIỆU VỀ LARAVEL
1 Cấu trúc thư mục Laravel
Một laravel framework có cấu trúc như sau:
Hình 1 1 Cấu trúc thư mục Laravel Framework
Trang 9Hình 2 2 Cài đặt laravelVới “example-app” là tên thư mục bạn muốn đặt bộ source code laravel
3 Route trong Laravel Framework.
- Định tuyến (route) trong Laravel có nghĩa là chỉ dẫn từ yêu cầu của người dùng sẽ làm gì Hoặc khi người truy cập vào trang đăng nhập rồi click nút đăng nhập thì nó sẽ làm gì thì route sẽ điều hướng đúng những thứ cần thực hiện
*o* Basic Routing
- Các định tuyến trong Laravel đều được viết trong routes/web.php Cú pháp đơn giản nhất của một định tuyến đó là:
Route::method(‘URI’,’Function call back’)
- Trong đó thì:
URI là dạng link trên url
Function call back: Hàm sẽ gọi tới link URI phía trên được chạy, đây chính là nơi có thể xử lý dữ liệu
Method là các dạng phương thức cơ bản: post, get, put, delete, any
o POST Route: Các thao tác lấy từ form như thêm dữ liệu
o GET Route: Dành cho thao tác truy cập thông thường tươngđương với request cơ bản trong PHP Ví dụ chạy 1 link trên url
o PUT Route: Dành cho các thao tác lấy từ form nhưng là cập nhật dữ liệu
o DELETE Route: Dành cho thao tác hành động xóa dữ liệu
o ANY Route: là sự tổng hợp các thao tác ở trên
Trong đó thì 2 dạng POST và GET sẽ được sử dụng nhiều nhất
(Trongđó thì shop chính là thư mục dự án) Khi các bạn chạy link này thì lập tức trong
Trang 10Route sẽ kiểm tra và gọi đúng tới hàm callback Sau khi chạy trang này các bạn sẽ nhận được thông báo như ý muốn.
4 View trong Laravel Framework
- Như đã đề cập ở trên thì thư mục view dùng để chứa các file mẫu như html để
tương tác với người sử dụng nằm trong thư mục (Resources/Views)
- Để sử dụng view ta có thể sử dụng như sau:
return View::make("Tên",Đối số nếu có);
Ví dụ trong routes/web.php ta có đường dẫn sau:
Sau đó ta tạo file routes/views/hoten.php với nội dung là ”lập trình web ” khi
chạy thử đường link http://localhost/shop /public/name thì ta sẽ thấy kết quả
Vậy nếu ta muốn truyền đối số cho view thì sao Bạn có nhiều cách để làm điều
đó
5 Controller trong Laravel Framework
- Như các bạn được biết trong Laravel cho phép chúng ta có thể xử lý dữ liệu
ngay bên trong Route nhưng đối với những thao tác phức tạp và dài chúng ta lên xử
lý trong Controller.Có như vậy thì ứng dụng của bạn mới trở nên linh hoạt và dễ mởrộng sau này
5.1 Khai báo Controller trong Laravel Framework
– Để tạo 1 controller các bạn cần vào thư mục app/controller với các quy tắc
sau:
Trang 112 Kế thừa từ lớp Controller.
Ví dụ, tạo 1 file HocphpController.php với nội dung:
<?php
class HocphpController extends Controller {
public function test(){
echo 'Tim hieu ve Controller trong Laravel ';
}
}
5.2 Chạy Controller theo phương thức Route::get
- Trước tiên các bạn truy cập vào file routes.php thêm nội dung sau:
Route::get('/controller-test', 'HocphpController,’test’);
Với đoạn code cấu hình trên ta đã khai báo 1 link controller-test sẽ gọi tới
controller HocphpController và phương thức(action) là test.Như vậy khi các chạylink localhost/shop /public/controller-test sẽ hiển thị nội dung như ý muốn:
6 Kết nối cơ sở dữ liệu
Laravel kết nối tới cơ sở dữ liệu và chạy truy vấn cực kỳ đơn giản Cấu hình
nằm tại file app/config/database.php Trong file này thì định nghĩa tất cả những loạikết nối cơ sở dữ liệu, tất nhiên là chúng cũng có loại cơ sở kết nối mặc định Những
ví dụ dưới đây được áp dụng cho tất cả những loại cơ sở dữ liệu mà được cung cấptrong file này.Hiện tại thì Laravel hổ trợ những hệ thống cơ sở dữ liệu sau: MySQL,Postgres, SQLite, và SQL Server
6.1 Cấu hình kết nối cơ sở dữ liệu trong Laravel Framework
- Các bạn mở file en và tìm tới dòng cấu hình:
Trang 12Hình 3 1 Kết nối cơ sở dữ liệuVới đoạn cấu hình trên thì các bạn cần quan tâm cho mình 4 thông số cấu
hình sau:
1 DB_HOST: Cấu hình host,các bạn giữ nguyên là localhost
2 DB_DATABASE: Cấu hình tên cơ sở dữ liệu mà bạn đang sử dụng
3.DB_USERNAME: Tài khoản có quyền truy cập vào cơ sở dữ liệu
4 DB_PASSWORD: Mật khẩu của tài khoản ở trên
- Thực hiện chạy câu lệnh truy vấn, sau khi đã kết nối vào hệ thống:
1 Chạy câu lệnh truy vẫn dữ liệu:
$results = DB::select('select * from users where id = ?', array(1));
Với phương thức select chúng ta sẽ lấy ra được dữ liệu trả về dạng mảng
Trang 13DB::insert('insert into users (id, name) values (?, ?)', array(1, 'hocphp'));
3 Chạy câu lệnh cập dữ liệu:
DB::update('update users set name = "nobitacnt" where id = ?',
array('1'));
4 Chạy câu lệnh xóa dữ liệu:
DB::delete('delete from users');
Ghi chú: Câu lệnh insert và câu lệnh delete luôn trả về con số record bị ảnh
Trang 14Và kết nối mặc định của chúng ta sẽ kết nối tới cơ sở dữ liệu mysql,còn trong
trường hợp muốn kết nối tới cơ sở dữ liệu 2 ta sử dụng:
$users = DB::connection('mysql2')->select('select * from user');
Trang 15+ Phương thức create – Tạo bảng dữ liệu
+ Phương thức rename – Đổi tên bảng dữ liệu
+ Phương thức drop – Xóa bảng dữ liệu
Form đăng nhập admin/user
- Mô tả: Khi đăng nhập sẽ gửi thông tin đăng nhập của user hoặc admin về cho hệ thống Controller của hệ thống là Login controller sẽ xác thực người dùng/admin nếu đúng thì sẽ chuyển vào trang index/admin sai thì sẽ thông báo nhập lại
Hình 4 1 Đăng nhập admin
Trang 16Khi nhập sai tài khoản hoặc mật khẩu sẽ hiện thông báo và cho người dùng nhập lại.
Hình 4 2 Đăng nhập saiĐăng kí
- Mô tả: khi đăng kí sẽ gửi thông tin đăng ký của user hoặc admin về cho hệ thống
Controller của hệ thống là Registercontroller lưu thông tin của người dùng/admin và
mã hóa mật khẩu rồi lưu xuống để bảo mật cho người dùng/admin nếu lưu thành công
hệ thống sẽ báo thành công và ngược lại
Trang 17Hình 4 3 Đăng ký
Mã hóa mật khẩu khi đăng kí
- Mô tả: để luôn đảm bảo tính an toàn bảo mật thông tin người dùng thì chức năng này cũng là một phần rất quan trọng, nó giúp “băm nhỏ” mật khẩu của bạn thành một chuỗi kí tự và cơ sở dữ liệu lưu lại các kí tự mã hóa này thay vì lưu mật khẩu của người dùng
Hình 4 4 Mã hóa mật khẩu
2 Quản lý các danh mục trong admin
- Mô tả: chức năng này cho phép admin xem danh mục và thêm/sửa/xoá các danh mục sản phẩm
Thêm danh mục
Trang 18Hình 5 1 Thêm danh mụcDanh sách danh mục
- Mô tả: chức năng này giúp admin đưa các danh mục quan trọng lên giao diện trang chủ
Hình 5 2 Danh sách danh mục
Trang 19- Mô tả: chức năng cho phép xem danh sách các sản phẩm hiện có và admin có thể thêm mới sản phẩm hoặc sừa xóa các sản phẩm hiện có
Hình 5 3 Danh sách sản phẩmThêm sản phẩm
Hình 5 4 Thêm sản phẩmDanh sách slider
Trang 20- Mô tả: chức năng này dùng có thể xem các slide hiện đang có và admin có thể thêm mới slide hoặc sửa xóa các slide cũ
Hình 5 5 Danh sách slider
Thêm slider
Hình 5 6 Thêm slider
Trang 213 Load Slider
Load slider
- Mô tả: chức năng này được admin đưa các hình ảnh trong slider để làm trang banner trong trang chủ, những tấm ảnh này sẽ liên tục lặp sau vài giây Vòng lặp này sẽ bị trì hoãn nếu user trực tiếp bấm vào thao tác chuyển slide Sau khi user không thao tác chuyển trang thì vòng lặp ấy sẽ lặp lại
Trang 22Hình 7 1 Load sản phẩmPhân trang theo danh mục
- Mô tả: ở chức năng này người dùng sẽ tìm sản phẩm theo các danh mục có sẵn để dễ tìm kiếm và phù hợp hơn
Hình 7 2 Phân trang theo danh mụcLoad thông tin sản phẩm
Trang 23- Mô tả: khi khách hàng click vô sản phẩm muốn xem chi tiết ở trang chủ thì các thôngtin sản phẩm ở database sẽ được nạp lên
Hình 7 3 Chi tiết sản phẩmThêm sản phẩm vô giỏ hàng
- Mô tả: khi khách hàng click vào nút add to cart thì các thông tin sản phẩm đó sẽ đượclưu vào mục cart và cũng từ controller cart đó sẽ thực hiện load các thông tin đó ở trong giỏ hàng, nếu sản phẩm đã có trong giỏ hàng thì cập nhật thêm số lượng sản phẩm người dùng thêm vào
Trang 24Hình 7 4 Thêm sản phẩm vào giỏ hàng
5 Đặt hàng
Danh sách đơn đặt hàng
- Mô tả: chức năng cho phép admin xem các đơn hàng đã được đặt thành công và cho phép admin sửa hoặc xóa đơn hàng khi khách hàng liên hệ và muốn sửa đơn hàng của mình
Trang 25Hình 8 1 Danh sách đơn hàng
Xử lý thông tin đặt hàng
- Mô tả: chức năng này hiển thị sau khi người dùng đã chọn xong tất cả sản phẩm muốn mua, sau đó hiện ra form để khách hàng hàng điền thông tin cá nhân vào hoặc dán mã giảm giá để tạo đơn hàng, cuối cùng là nhấn đặt hàng
Hình 8 2 Xử lý thông tin đơn
6 Mail
Phản hồi mail khi đặt hàng
- Mô tả: chức năng này cho phép người người dùng nhận một mail thông báo đã đặt được hàng sau khi người dùng bấm nút đặt hàng
Trang 26Hình 9 1 Nhận mail khi có đơn hàng
KẾT LUẬN
- Ngôn ngữ PHP kết hợp với hệ quản trị cơ sở dữ liệu MySQL cho phép chúng ta thiết
kế và xây dựng trang Web có tính năng cao Thời đại mà công nghệ thông tin đã trở thành một nhu cầu không thể thiếu Việc một công ty tổ chức bán hàng trên mạng là một phương pháp tối ưu để bán hàng, có thể giảm thiểu thời gian và các chi phí khác của khách hàng và công ty Với thời gian và năng lực có hạn, trong một thời gian em
đã nghiên cứu và ứng dụng thư viện Laravel với công cụ hỗ trợ Laragon để xây dựng thử nghiệm trang Web thương mại điện tử Trong quá trình thực hiện đề tài này không thể tránh khỏi những thiếu sót Kính mong sự thông cảm, góp ý và bổ sung của các thầy cô và các bạn để Website ngày càng hoàn thiện hơn Em xin chân thành cảm ơn!