Tải bản đầy đủ (.docx) (66 trang)

Giáo trình mô đun Lập trình web với Laravel framework (Nghề Công nghệ thông tin Trình độ cao đẳng)

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 (2.8 MB, 66 trang )

BM/QT10/P.ĐTSV/04/04
Ban hành lần: 3

UBND TỈNH BÀ RỊA – VŨNG TÀU
TRƯỜNG CAO ĐẲNG KỸ THUẬT CƠNG NGHỆ

GIÁO TRÌNH
MƠ ĐUN LẬP TRÌNH WEB VỚI LARAVEL FRAMEWORK
NGHỀ: CƠNG NGHỆ THƠNG TIN
TRÌNH ĐỘ CAO ĐẲNG
(Ban hành kèm theo Quyết định số: ……/QĐ-CĐKTCN, ngày … tháng … năm
20…… của Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR-VT)

BÀ RỊA – VŨNG TÀU

1


TUYÊN BỐ BẢN QUYỀN
Nhằm đáp ứng nhu cầu học tập và nghiên cứu cho giảng viên và sinh viên
nghề Công nghệ Thông tin trong trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa –
Vũng Tàu, chúng tôi đã thực hiện biên soạn tài liệu Lập trình web với Laravel
framework.
Tài liệu được biên soạn thuộc loại giáo trình phục vụ giảng dạy và học tập,
lưu hành nội bộ trong Nhà trường nên các nguồn thơng tin có thể được phép
dùng ngun bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh
doanh thiếu lành mạnh sẽ bị nghiêm cấm.


LỜI GIỚI THIỆU


Giáo trình “Lập trình web với Laravel framework” được biên soạn dựa trên
khung chương trình đào tạo Cao đẳng nghề Công nghệ Thông tin đã được
Trường Cao đẳng Kỹ thuật Công nghê Bà Rịa – Vũng Tàu phê duyệt.
Tác giả đã nghiên cứu một số tài liệu, công nghệ hiện đại kết hợp với kinh
nghiệm làm việc thực tế để viết nên giáo trình này. Nội dung được tác giả trình
bày cơ động, dễ hiểu kèm theo các bước hướng dẫn thực hành chi tiết theo
nguyên tắc quan tâm đến kết quả đầu ra, khả năng tự học và kỹ năng cần thiết để
HSSV có thể hồn thành ứng dụng web quảng cáo sản phẩm, thương mại điện
tử, … bằng Laravel framework, một trong những framework thông dụng hiện
nay, đáp ứng nhu cầu thực tế của doanh nghiệp.
Nội dung giáo trình được chia thành 13 bài, trong đó:
Bài 1: Tổng quan
Bài 2: Tạo Laravel site
Bài 3: Routing
Bài 4: Middleware
Bài 5: Controller
Bài 6: Resource controller
Bài 7: Truy xuất cơ sở dữ liệu
Bài 8: Phân trang
Bài 9: Xây dựng blade template
Bài 10: Chứng thực
Bài 11: Session
Bài 12: Quản lý người dùng
Bài 13: Gửi email và upload tập tin
Trong quá trình biên soạn, chắc chắn giáo trình cịn nhiều thiếu sót. Tác giả
rất mong nhận được ý kiến đóng góp của quý thầy/cô và các em học sinh, sinh
viên để tiếp tục hoàn thiện hơn.

1



Xin chân thành cảm ơn quý đồng nghiệp, bạn bè đã có những ý kiến đóng
góp trong q trình biên soạn giáo trình này.
Bà Rịa – Vũng Tàu, ngày …… tháng …… năm ………
Tham gia biên soạn
1. Phan Hữu Phước – Chủ biên

2


MỤC LỤC
LỜI GIỚI THIỆU..................................................................................................1
MỤC LỤC.............................................................................................................3
BÀI 1: TỔNG QUAN VỀ LARAVEL..................................................................9
1. Mơ hình MVC.................................................................................................9
2. Cài đặt Composer..........................................................................................10
CÂU HỎI, BÀI TẬP...........................................................................................15
GỢI Ý, ĐÁP ÁN.................................................................................................15
BÀI 2: TẠO LARAVEL SITE............................................................................16
1. Một số lệnh tạo và chạy Laravel site.............................................................16
1.1. Xem các lệnh của composer: composer....................................................16
1.2. Tạo một Laravel site.....................................................................................16
1.3. Chạy một Laravel site...................................................................................17
2. Cấu trúc thư mục trong Laravel site..............................................................18
3. Cấu hình tập tin config/database.php kết nối đến CSDL MySQL................18
CÂU HỎI, BÀI TẬP...........................................................................................18
BÀI 3: ROUTING...............................................................................................19
1. Cú pháp.........................................................................................................19
2. Route chuyển tiếp..........................................................................................20
3. Route có tham số...........................................................................................20

4. Đặt tên cho route...........................................................................................21
BÀI 4: MIDDLEWARE......................................................................................22
1. Khái niệm......................................................................................................22
2. Định nghĩa Middleware.................................................................................22
2.1. Tạo Middleware...........................................................................................22
2.2. Middleware trước và sau..............................................................................24
3. Đăng ký Middleware.....................................................................................25
3.1. Đăng ký toàn cục (Global Middleware).......................................................25
3


3.2. Đăng ký đến route........................................................................................25
3.3. Gom nhóm Middleware................................................................................26
3.4. Sắp xếp thứ tự Middleware..........................................................................27
4. Middleware có tham số.................................................................................27
5. Hàm terminate...............................................................................................28
BÀI 5: CONTROLLER.......................................................................................30
1. Khái niệm......................................................................................................30
2. Tạo controller................................................................................................30
3. Định nghĩa hàm (hành động) của controller..................................................31
4. Tạo view cho hàm của controller..................................................................32
5. Truyền dữ liệu route, controller, view...........................................................32
6. Single Action Controllers (Controller chỉ có một hàm)................................34
7. Controller Middleware..................................................................................36
BÀI 6: RESOURCE CONTROLLER.................................................................37
1. Khái niệm......................................................................................................37
2. Tạo Resource controller................................................................................38
3. Xử lý hàm index hiển thị danh sách chủ đề..................................................40
4. Xử lý hàm create và store để thêm dữ liệu....................................................40
5. Xử lý hàm edit và update để sửa dữ liệu.......................................................41

6. Xử lý hàm destroy để xóa dữ liệu.................................................................43
CÂU HỎI, BÀI TẬP...........................................................................................43
BÀI 7: TRUY XUẤT CSDL...............................................................................44
1. Cấu hình đăng nhập CSDL............................................................................44
2. Thực hiện câu lệnh SQL đơn giản.................................................................45
3. Query Builder................................................................................................45
3.1. Giới thiệu......................................................................................................45
3.2. Các hàm đọc kết qủa....................................................................................45
3.3. Biểu thức Raw..............................................................................................47
4


3.4. Lệnh join.......................................................................................................47
3.5. Lệnh union....................................................................................................47
3.6. Mệnh đề where.............................................................................................47
3.7. Sắp xếp, gom nhóm, giới hạn và nhảy dịng................................................47
3.8. Mệnh đề điều kiện (when)............................................................................48
3.9. Lệnh insert, update, delete............................................................................48
BÀI 8: PHÂN TRANG.......................................................................................49
1. Cập nhật hàm trả về view hiển thị danh sách................................................49
2. Cập nhật view hiển thị danh sách..................................................................49
2.1. Hiển thị phân trang.......................................................................................49
2.2. Hiển thị số trang liên kết..............................................................................50
CÂU HỎI, BÀI TẬP...........................................................................................50
BÀI 9: XÂY DỰNG BLADE TEMPLATE........................................................52
1. Giới thiệu Blade template..............................................................................52
2. Tạo và sử dụng blade template......................................................................52
BÀI 10: CHỨNG THỰC....................................................................................56
1. Tạo chức năng chức thực cho site.................................................................56
2. Khảo sát các trang của chức năng chứng thực..............................................57

3. Tạo table quản lý người dùng........................................................................58
4. Đăng ký tài khoản.........................................................................................59
5. Tùy biến trang mặc định................................................................................59
6. Truy cập yêu cầu chứng thực........................................................................60
BÀI 11: SESSION...............................................................................................62
BÀI 12: QUẢN LÝ NGƯỜI DÙNG..................................................................63
BÀI 13: GỬI EMAIL VÀ UPLOAD TẬP TIN..................................................64
TÀI LIỆU THAM KHẢO...................................................................................65

5


GIÁO TRÌNH MƠ ĐUN
Tên mơ đun: Lập trình web với Laravel framework
Mã mơ đun: MĐ30
Vị trí, tính chất, ý nghĩa và vai trị của mơ đun:
 Vị trí: được giảng dạy sau khi học xong các môn cơ sở và Lập trình web
PHP & MySQL.
 Tính chất: là mơ đun tự chọn.
 Ý nghĩa và vai trị của mơ đun: cung cấp cho người học kiến thức và kỹ
năng để có thể thiết kế, xây dựng và phát triển ứng dụng web PHP theo mơ
hình MVC bằng Laravel framework.
Mục tiêu của mơ đun:
 Về kiến thức:
+
+
+
+
+
+

+
+
+
+
+
+

Trình bày mơ hình MVC
Biết các bước cài đặt Composer
Biết một số lệnh tạo và chạy Laravel site
Trình bày được quy trình xử lý yêu cầu Laravel site
Biết công dụng của route
Biết khái niệm về middleware
Trình bày các loại middleware
Trình bày khái niệm và vai trị của controller
Trình bày resource controller
Biết cơng dụng của các hàm trong resource controller
Biết đường dẫn của tập tin cấu hình
Biết các thuộc tính cấu hình cho truy xuất CSDL, gửi email, upload tập

+
+
+
+
+
+
+
+
+


tin
Biết cơng dụng của phân trang
Trình bày quy trình tạo phân trang cho trang hiển thị danh sách
Biết cơng dụng của template
Trình bày cơng dụng của từng thành phần trong blade template
Biết công dụng của chứng thực
Biết lệnh để tạo chức năng chức thực cho site
Trình bày khái niệm và cơng dụng của Session
Biết quy trình đọc, cập nhật thơng tin người dùng
Trình bày quy trình tạo trang gửi email và upload tập tin

 Về kỹ năng:
+ Cài đặt Composer
6


+
+
+
+
+
+

Tạo mới, cấu hình và chạy Laravel site
Định nghĩa một route trong web.php
Tạo route trả về một view
Tạo route trả về một hành động của controller
Tạo và đăng ký middleware
Lưu ý sử dụng middleware trong những trang phù hợp tránh gây khó


+
+
+
+
+

chịu cho người truy cập
Tạo controller và định nghĩa các hàm hành động trong controller
Truyền dữ liệu từ route đến controller và hiển thị trên view
Tạo resource controller
Viết các lệnh xử lý cho các hàm hành động trong resource controller
Tạo các trang truy xuất CSDL bằng các lệnh SQL đơn giản và Query

+
+
+
+
+
+

Builder
Tạo chức năng phân trang cho các trang hiển thị danh sách
Tạo template cho các view
Tạo view sử dụng blade template
Tạo chức năng chức thực cho site
Phân quyền cho các trang
Sử dụng Session lưu trữ thông tin khách truy cập và tạo chức năng giỏ

hàng
+ Tạo các trang quản lý thông tin người dùng

+ Tạo trang liên hệ gửi email đến quản trị
+ Tạo trang upload tập tin
 Về năng lực tự chủ và trách nhiệm:
+
+
+
+
+

Cẩn thận tạo site đúng đường dẫn, không làm ảnh hưởng đến hệ thống
Chính xác các ký tự IN, thường
Phân tích cẩn thận giao diện mẫu trước khi xây dựng blade template
Cẩn thận tránh hiển thị thơng tin người dùng ngồi ý muốn
Xử lý cẩn thận ngăn chặn kẻ xấu sử dụng chức năng gửi emal và upload

tập tin để tấn công và phá hoại site
+ Có thể vận dụng để xây dựng website thương mại, quảng bá chuyên
nghiệp bằng các framework, CMS mã nguồn mở theo mơ hình MVC.
Nội dung của mô đun:

7


BÀI 1: TỔNG QUAN VỀ LARAVEL
Mã bài: 30.1
Giới thiệu:
Để có thể tạo và chạy thử ứng dụng web dùng Laravel framework, yêu cầu
máy tính phải được cài đặt và cấu hình biến đường dẫn hệ thống.
Mục tiêu:






Trình bày mơ hình MVC
Biết các bước cài đặt Composer
Cài đặt Composer
Kiểm tra phiên bản XAMPP phù hợp đã được cài đặt trước đó trên máy
tính

Nội dung chính:
1. Mơ hình MVC
Model View Controller là một mơ hình kiến trúc theo hướng đối tượng, cho
phép người phát triển tách một ứng dụng thành 3 thành phần chính:
 Model: thành phần đại diện cho dữ liệu của ứng dụng, bao gồm cả chức
năng kiểm tra tính hợp lệ của dữ liệu.
 View: thành phần đảm trách việc hiển thị dữ liệu và các thành phần trong
giao diện người dùng.
 Controller: thành phần có trách nhiệm tiếp nhận và xử lý các yêu cầu gửi
đến cho ứng dụng, làm nhiệm vụ điều phối công việc giữa View và Model.
 Việc phát triển ứng dụng, nâng cấp, bảo trì và thử nghiệm trở nên đơn giản và
dễ dàng hơn.

Hình 1.1. Các thành phần trong mơ hình MVC

9


Hình 1.2. Hoạt động của mơ hình MVC
Laravel framework là một trong những framework phổ biến, hỗ trợ phát triển

ứng dụng web bằng ngơn ngữ PHP trên mơ hình MVC.
2. Cài đặt Composer
Để có thể tạo và chạy thử ứng dụng web sử dụng Laravel framework thì máy
tính phải đươc cài đặt gói XAMPP và Composer. Việc cài đặt gói XAMPP đã
được trình bày chi tiết trong giáo trình Lập trình web PHP & MySQL. Theo đó,
giáo trình này trình bày các bước cài đặt Composer.
Bước 1: truy cập trang />Bước 2: click chuột lên Download
Bước 3: chạy file Composer-Setup.exe sau khi tải xong để cài đặt
Bước 4: chọn Yes để tiếp tục

Bước 5: chọn Next để tiếp tục

10


Bước 6: chọn tập tin php.exe trong gói XAMPP

Bước 7: chọn Next để tiếp tục

Bước 8: chọn Install bắt đầu cài đặt

11


Bước 9: chọn Next để tiếp tục

Bước 10: chọn Finish hồn thành q trình cài đặt

Bước 11: cấu hình đường dẫn hệ thống
Bước 11.1: click chuột phải Computer, chọn Properties

12


Bước 11.2: chọn Advanced system settings. Xuất hiện hộp thoại System
Properties

Bước 11.3: chọn tab Advanced
Bước 11.4: chọn Environment Variables… Xuất hiện hộp thoại Environment
Variables

13


Bước 11.5: chọn Path trong danh sách User variables for … rồi chọn Edit…
Xuất hiện hộp thoại Edit environment variable

Bước 11.6: chọn Edit rồi nhập vào
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin

14


Bước 11.7: chọn OK rồi khởi động lại máy tính
CÂU HỎI, BÀI TẬP
1.1. Thực hiện cài đặt các phần mềm cần thiết, sau đó cấu hình đường dẫn hệ
thống để có thể tạo ứng dụng web sử dụng Laravel framework.
GỢI Ý, ĐÁP ÁN
Kiểm tra gói XAMPP
Tải và cài đặt XAMPP và Composer.


15


BÀI 2: TẠO LARAVEL SITE
Mã bài: 30.2
Giới thiệu:
Để có thể tạo và chạy thử ứng dụng web dùng Laravel framework, u cầu
máy tính phải được cài đặt và cấu hình biến đường dẫn hệ thống.
Mục tiêu:





Biết một số lệnh tạo và chạy Laravel site
Tạo được Laravel site
Cấu hình và chạy Laravel site
Cẩn thận tạo site đúng đường dẫn, không làm ảnh hưởng đến hệ thống

Nội dung chính:
1. Một số lệnh tạo và chạy Laravel site
1.1. Xem các lệnh của composer: composer

Hình 2.1. Kết quả của lệnh composer
1.2. Tạo một Laravel site
Có 2 cách để tạo một Laravel site.
 Cách 1: Bằng trình cài đặt Laravel. Thực hiện 2 bước
Bước 1: composer global require “laravel/installer”

Bước 2: laravel new <TênSite>

16


 Cách 2: Bằng lệnh create-project của Composer
composer
<TênSite>

create-project

--prefer-dist

laravel/laravel

Viết các lệnh thực hiện tạo Laravel site có tên LaravelBlog theo cách 1.
.................................................................................................................................
.................................................................................................................................
1.3. Chạy một Laravel site
Dùng lệnh: php artisan serve

Mở trình duyệt, truy cập địa chỉ http://localhost:8000 để xem kết quả.

17


3. Cấu trúc thư mục trong Laravel site

Hình 2.2. Cấu trúc thư mục lưu trữ trong Laravel site
 controller: chứa các tập tin định nghĩa controller xử lý yêu cầu
 config: chứa các tập tin cấu hình site. Ví dụ: thông tin truy xuất cơ sở dữ
liệu

 views: chứa các tập tin giao diện hiển thị
 routes: chứa các tập tin định nghĩa route chuyển từ địa chỉ yêu cầu đến
controller xử lý tương ứng
4. Cấu hình tập tin config/database.php kết nối đến CSDL MySQL

CÂU HỎI, BÀI TẬP
2.1. Tạo một Laravel site có tên bookstore bằng cách 1.
2.2. Tạo Laravel site có tên tracuudiem bằng cách 2.
2.3. Đường dẫn tập tin chứa cấu hình kết nối đến CSDL?
2.4. Lệnh để chạy Laravel site?
18


BÀI 3: ROUTING
Mã bài: 30.3
Giới thiệu:
Route là quá trình xác định yêu cầu người dùng thông qua URI để truyền
cho controller cụ thể giải quyết.
Mục tiêu:







Trình bày được quy trình xử lý yêu cầu Laravel site
Biết công dụng của route
Định nghĩa một route trong web.php
Tạo route trả về một view

Tạo route trả về một hành động của controller
Chính xác các ký tự IN, thường

Nội dung chính:
1. Cú pháp
Các route được định nghĩa trong tập tin routes/web.php
Cú pháp định nghĩa một rout: Rout::get/post($uri, $callback);
 $uri: địa chỉ tương đối của ứng dụng
 $callback: lệnh xử lý
Ví dụ: route được thực hiện bởi một function, trả về kết quả là một chuỗi.

Kiểm tra: truy cập vào trang http://domain/about để xem kết quả.
Ví dụ: route được thực hiện bởi một function, trả về là một view.
Bước 1: sửa lại định nghĩa rout trên như sau:

Bước 2: tạo file resources/views/about.blade.php

19


Truy cập lại trang http://domain/about để xem kết quả.

Ví dụ: route được thực hiện bởi một controller
hoặc
hoặc

5. Route chuyển tiếp
Khi muốn tạo route chuyển tiếp từ địa chỉ này đến route khác xử lý.

Khi đó, việc truy cập vào địa chỉ http://domain/sanpham hoặc http://domain/sp

sẽ hiển thị cùng một kết quả trên trình duyệt.
6. Route có tham số

Kiểm tra: truy cập trang http://domain/tong/3/5 để xem kết quả.

20


7. Đặt tên cho route

Sử dụng route đã được đặt tên:

Xem thêm:  The Basics  Routing

21


BÀI 4: MIDDLEWARE
Mã bài: 30.4
Giới thiệu:
Một trong những thành phần trung gian tham gia vào quá trình tiếp nhận và
xử lý yêu cầu của người dùng là Middleware.
Mục tiêu:





Biết khái niệm về middleware
Trình bày các loại middleware

Tạo và đăng ký middleware
Lưu ý sử dụng middleware trong những trang phù hợp tránh gây khó chịu

cho người truy cập
 Khơng làm ảnh hưởng đến các thành phần khác gây lỗi site
Nội dung chính:
1. Khái niệm
Middleware cung cấp một cơ chế thuận tiện để lọc các yêu cầu HTTP truy cập
vào ứng dụng. Ví dụ, Laravel chứa sẵn một middleware để chứng thực người
dùng ứng dụng của bạn đã được xác thực. Nếu người dùng không được xác
thực, middleware này sẽ chuyển hướng người dùng đến trang đăng nhập. Tuy
nhiên, nếu người dùng được xác thực, middleware sẽ cho phép các yêu cầu truy
cập vào ứng dụng.
Có thể tạo thêm các middleware để thực hiện các công việc khác bên trong ứng
dụng web Laravel. Ví dụ, middleware CORS có thể chịu trách nhiệm thêm các
tiêu đề thích hợp cho tất cả các câu trả lời rời khỏi ứng dụng, một middleware
đăng nhập có thể ghi lại tất cả các yêu cầu gửi đến ứng dụng.
Laravel có sẵn các middleware giúp xác thực và bảo vệ CSRF. Tất cả các
middleware này đều nằm trong thư mục app/Http/Middleware.
8. Định nghĩa Middleware
2.1. Tạo Middleware
Ví dụ: Tạo middleware kiểm tra tuổi.
Bước 1: dùng lệnh make:middleware Artisan
php artisan make:middleware TênMiddleware

22


Lệnh trên sẽ tạo tập tin app/Http/Middleware/CheckAge.php


Bước 2: cập nhật nội dung tập tin.

23


Nếu tuoi<16 thì người dùng sẽ bị chuyển đến trang mặc định, ngược lại thì
người dùng sẽ được phép truy cập. Để truyền dữ liệu từ middleware, chúng ta
gọi hàm $next với tham số $request.
2.2. Middleware trước và sau
Middleware được thực hiện trước hoặc sau một yêu cầu phụ thuộc vào việc định
nghĩa chính middleware đó. Ví dụ bên dưới là một middleware được thực hiện
trước khi thi thực hiện yêu cầu xử lý.

Ví dụ bên dưới là middleware được thực hiện sau khi thực hiện yêu cầu xử lý.

24


×