1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo Cáo Thực Tập Tốt Nghiệp Xây Dựng Website Bằng Laravel.docx

24 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Bằng Laravel
Tác giả Trần Quốc Huy
Người hướng dẫn Ths. Chu Thị Mai
Trường học Trường Cao Đẳng Công Thương TP.HCM
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Thực Tập Tốt Nghiệp
Năm xuất bản 2019
Thành phố TP.HCM
Định dạng
Số trang 24
Dung lượng 733,66 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP HCM KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP TỐT NGHIỆP XÂY DỰNG WEBSITE BẰNG LARAVEL Sinh viên Trần Quốc Huy MSSV 2116110027 Lớp CCQ1611A GVHD Ths Chu T[.]

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG CAO ĐẲNG CÔNG THƯƠNG TP.HCM KHOA: CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP TỐT NGHIỆP

XÂY DỰNG WEBSITE BẰNG LARAVEL

Sinh viên: Trần Quốc Huy

MSSV: 2116110027 Lớp: CCQ1611A GVHD: Ths Chu Thị Mai

TP.HCM, 07/05/2019

Trang 2

MỤC LỤC

PHẦN 1 MỞ ĐẦU 3

1 Lý do chọn đề tài 3

2 Mục đích nghiên cứu (các kết quả cần đạt được) 3

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

4.Phương pháp nghiên cứu: 3

PHẦN 2 ĐỀ CƯƠNG CHI TIẾT 5

CHƯƠNG 1: ĐẶT VẤN ĐỀ 5

1.1 PHP Framework là gì? 5

1.2 Tại sao nên sử dụng PHP Framework? 5

1.3 Tại sao nên sử dụng Laravel Framework? 6

CHƯƠNG 2: 7

GIỚI THIỆU VỀ LARAVEL 7

2.1 Cấu trúc thư mục của Laravel 7

2.2 Cài đặt Laravel 8

2.2.1 Cài Composer 8

2.2.2 Cài Laravel 9

2.3 Cấu hình cơ bản cho ứng dụng 9

2.4 Chạy ứng dụng đầu tiên với Laravel 9

2.5 Route trong Laravel Framework 10

2.5.1 Basic Routing 10

2.5.2 Route Parameters 11

2.5.3 Route Filters 11

2.5.4 Name Route 13

2.5.5 Route Groups 14

2.5.6 Route Prefixing 14

2.6 View trong Laravel Framework 15

2.7 Controller trong Laravel Framework 16

Trang 3

2.7.3 Implicit Controllers – Sử dụng phương thức Route::controller 17

2.7.4 RESTful Resource Controllers – Sử dụng phương thức Route::resource.18 2.7.5 Controller với Filter 20

2.8 Kết nối cơ sở dữ liệu 21

2.8.1 Cấu hình kết nối cơ sở dữ liệu trong Laravel Framework 21

2.8.2 Database Transactions 22

2.9 Sử dụng Query Builder 23

2.9.1 Truy vấn dữ liệu 24

2.9.2 Join bảng dữ liệu 26

2.9.3 Hàm trong Laravel Framework 27

2.9.4 Raw Expressions 27

2.9.5 Câu lệnh Inserts dữ liệu 27

2.9.6 Câu lệnh Updates dữ liệu 27

2.9.7 Câu lệnh Deletes dữ liệu 27

2.9.8 Câu lệnh Union 28

2.10 Eloquent ORM 28

2.10.1 Lấy dữ liệu 28

2.10.2 Thêm dữ liệu (Insert) 29

2.10.3 Cập nhật dữ liệu (Update) 29

2.10.4 Xóa dữ liệu (Delete) 29

2.11 Sử dụng Migrations và Schema Builder 30

2.11.1 Lớp Schema Builder – thao tác với bảng CSDL 30

2.11.2 Migrations – Quản lý CSDL 32

CHƯƠNG 3: 35

PHÂN TÍCH - THIẾT KẾ WEBSITE 35

1 Giới thiệu chương 35

2 Nội dung 35

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40

4 Kết luận: 40

4.1 Kết quả đạt được 40

4.2 Hướng phát triển 40

Trang 4

mũ, balo, quân hàm, quân hiệu Qua quá trình xây dựng và phát triển đến nay, Công ty đã trở thành một trong những Công ty có uy tín trong và ngoài nước, với 5 xí nghiệp thành viên, tổng số lao động hiện nay hơn 2000 người Ngoài sản xuất các mặt hàng phục vụ cho Quân đội và Công an, Công ty còn sản xuất giày nam, nữ, giày vải, túi cặp các loại trên công nghệ hiện đại phục vụ trong nước và xuất khẩu Công ty đang mở rộng kinh doanh sang lĩnh vực thương mại điện tử vì thế cần có website để kinh doanh.

Hiện nay có thể xem công nghệ xây dựng web bằng Laravelframework 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 WebServer 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ềuwebsever 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 Tuynhiên ngoài những ưu điểm bên cách đó 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 giầy dép

Giới thiệu và trưng 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:

Laravel framework

Tìm hiểu và khảo sát qui trình bán hàng qua mạng để có

cơ sở xây dựng một trang web bán hàng

Phạm vi nghiên cứu: xây dựng một trang web bán lẻ, chuyên bán sảnphẩm sản phẩm giầy dép trong lãnh thổ việt nam

4.Phương pháp nghiên cứu:

Trang 5

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Tp.Hồ Chí Minh, ngày … tháng … năm …

Giáo viên hướng dẫn

(Ký tên và ghi rõ họ tên)

Trang 6

PHẦN 2 ĐỀ CƯƠNG CHI TIẾT CHƯƠNG 1: ĐẶT VẤN

ĐỀ 1.1 PHP Framework là gì?

PHP là 1 ngôn ngữ script rất phổ biến hiện nay bởi những lý do: linh

hoạt, dễ sử dụng, dễ học, v…v nhưng đôi khi việc viết mã PHP, hay bất

cứ ngôn ngữ (lập trình) nào khác, có thể trở nên đơn điệu và lủng củng Đó

là lúc PHP Framework có thể giúp bạn

PHP Frameworks làm cho sự phát triển của những ứng dụng web viết bằng

ngôn ngữ PHP trở nên trôi chảy hơn, bằng cách cung cấp 1 cấu trúc cơ bản để

xây dựng những ứng dụng đó Hay nói cách khác, PHP Framework giúp đỡcác bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng, giúp bạn tiếtkiệm được thời gian, tăng sự ổn định cho ứng dụng, và giảm thiểu số lần phảiviết lại mã cho lập trình viên Ngoài ra Framework còn giúp những người mớibắt đầu có thể xây dựng các ứng dụng ổn định hơn nhờ việc tương tác chính

xác giữa các Database, mã (PHP) và giao diện (HTML) 1 cách riêng biệt Điều

này cho phép bạn dành nhiều thời gian để tạo ra các ứng dụng web, hơn là phíthời gian để viết các đoạn mã lặp lại trong 1 project

Ý tưởng chung đằng sau cách thức làm việc của 1 PHP Frameworkđược kể đến là Model View Controller (MVC) MVC là 1 mô hình (kiến trúc) tronglập trình, cho phép tách biệt các mã nghiệp vụ và giao diện thành các phần riêngbiệt, điều này đồng nghĩa với việc ta có thể chỉnh sửa chúng 1 cách riêng lẻ.Trong cụm từ MVC thì: Model (M) có thể hiểu là phần xử lý các thao tác về

nghiệp vụ (business logic), View được hiểu là phần xử lý lớp giao diện (presentation layer), và Controller làm nhiệm vụ lọc các request đc gọi từ user,

có chức năng như 1 route: điều chỉnh, phân luồng các yêu cầu để gọi đúngModel & View thích hợp Về cơ bản, MVC chia nhỏ quá trình xử lý của 1 ứngdụng, vì thế nên bạn có thể làm việc trên từng thành phần riêng lẻ, trong khinhững thành phần khác sẽ không bị ảnh hưởng tới Thực chất, điều này giúp đỡbạn lập trình PHP nhanh hơn và ít phức tạp hơn

1.2 Tại sao nên sử dụng PHP Framework?

Có rất nhiều lý do khác nhau để các lập trình viên sử dụng PHP Framework,nhưng 1 trong những lý do chính vẫn là khả năng giúp các lập trình viền tăng tốcquá trình phát triển ứng dụng Việc sử dụng lại các mã lệnh giống nhau trongnhiều project sẽ giúp các bạn tiết kiệm được thời gian và công sức 1 cách đáng

kể Một Framework sẽ cung cấp sẵn các module nền tảng cần thiết để xây dựng 1project, vì thế, các lập trình viên có thể tận dụng được thời gian để phát triển cácứng dụng thực tế, hơn là mất thời gian để xây dựng lại nền tảng trên mỗi project

Trang 7

1.3 Tại sao nên sử dụng Laravel Framework?

Có hơn 20 Framework mã nguồn mở PHP khác nhau, nhưng trong số

đó thì Laravel Framework là phổ biến nhất, xếp sau là: PhaIcon, Symfony2,CodeIgniter, Yii,…

Nó là 1 Framework khá mới mẻ nhưng bù lại nó có "hướng dẫn sử dụng" khá đầy

đủ, rõ ràng và dễ hiểu và cùng với cộng đồng phát triển rộng lớn trên toàn thế giới Nếu bạn đã từng làm việc với các Framework khác hoặc chỉ là người mới bắt đầu

"chập chửng" tìm hiểu PHP Framework thì việc tiếp cận Laravel Framework không phải là vấn đề khó khăn gì Ưu điểm của nó là: Autoload theo namespace, Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện, phân trang trong laravel cực kỳ đơn giản, việc quản lý layout giờ đây thật sự giản đơn với Laravel, dễ dàng tích hợp các thư viện của Zend và các gói bundle (giống như moduel) vào project, có rất nhiều gói bundle đc các đồng đạo trên thế giới build sẵn và share trên github và còn rất nhiều ưu điểm khác đang đợi các bạn khám phá…

Trang 8

CHƯƠNG 2:

GIỚI THIỆU VỀ LARAVEL

2.1 Cấu trúc thư mục của Laravel

Một dự án web viết bằng Laravel có cấu trúc thư mục như sau:

Hình 2.1: Thư mục Laravel Framework

Hình 2.2: Chức năng của các thư mục chínhNhư đã đề cập ở trên, thư mục /app là nguồn chính của ứng dụng, vì vậy chúng ta cần tìm hiểu sâu về chúng:

Trang 9

Hình 2.3: Chức năng cụ thể của các thư mục con trong app

2.2 Cài đặt Laravel

2.2.1 Cài Composer

Chúng ta sẽ cài đặt Laravel bằng composer nên các bạn cần cài đặtcomposer trước, tôi dùng window nên tôi download bản cài đặt composer củawindow Bạn có thể tải composer tại địa chỉ: http://laravel.com/docs/4.2/installation

Các bạn download về và cài đặt bình thường, lưu ý ở chỗ chọn phpthôi, các bạn chỉ đường dẫn đến file php.exe trong thư mục php củaXAMPP (xampp/php/php.exe)

Trang 10

2.2.2 Cài Laravel

Bản Laravel mới nhất hiện tại là 4.2 (Tại thời điểm bài viết này), bảnnày yêu cầu chạy trên PHP>=5.4, hiện tại tôi đang dùng XAMPP 5.6.3 nêncài được bản mới nhất của Laravel Nếu các bạn muốn cài đặt bản mớinhất thì chỉ cần dùng lệnh sau:

composer create-project laravel/laravel tên-thư-mục-laravel-của-bạn

Còn muốn nếu install các bản thấp hơn thì dùng:

composer create-project laravel/laravel tên-thư-mục-laravel-của-bạn 4.0.*

Sau khi cài đặt xong, chúng ta có cấu trúc thư mục Laravel như hình 2.1 phía trên Để biết được có cài Laravel thành công hay không thì chúng ta thử chạy Laravel bằng cách mở trình duyệt lên rồi gõ địa chỉ như sau: http://localhost/laravel_demo/public/ Nếu thành công thì sẽ hiển thị hình dưới đây:

Hình 2.4: Cài đặt Laravel thành công

2.3 Cấu hình cơ bản cho ứng dụng

Các bạn truy cập vào app/config/app.php và chỉnh sửa lại những thôngtin cơ bản sau:

+ Chỉnh lại URL,các bạn tìm tới key url và chỉnh lại cho phù hợp với dự

án của mình nhé:

'url' => 'http://localhost/kienthuc24h/'

+ Cấu hình key,các bạn tìm tới dòng có cấu hình key mục đích của lệnh này

là tăng tính bảo mật của những cookie và session cho website Hoặc các bạn có thể

sử dụng lệnh CMD bằng cách chỉ đường dẫn đến thư mục làm việc của bạn ở đâymình sử dụng thư mục kienthuc24h và chạy dòng lệnh sau:

php artisan key:generate

2.4 Chạy ứng dụng đầu tiên với Laravel

- Các bạn truy cập vào file app/route.php và thêm nội dung sao vào cuối

file: Route::get(‘/dang-nhap’,function(){

echo ‘Đây là trang đăng nhập’;

});

Trang 11

- Và các bạn thử gõ lên trình duyệt đường link:http://localhost/kienthuc24h/public/dang-nhap các bạn sẽ thấy được kết quảvới nội dung sau:

Đây là trang đăng nhập

2.5 Route trong Laravel Framework

Mục đích của router là định tuyến đến những controller cụ thể nào từ phíarequest của người sử dụng Đối với những Framework khác thì khi các bạnmuốn thực hiện 1 công việc nào đó thường chúng ta cần xây dựng 1 controller

để xử lý phải không nào, nhưng trong Laravel thì các bạn hoàn toàn có thể xử

lý dữ liệu ngay trong phần Router Đây chính là điểm mạnh cũng như điểmkhác biệt lớn của Laravel Framework đối với các Framework khác

+ URI là dạng link trên url

+ Function callback: Hàm sẽ gọi tới link URI phía trên được chạy, đâychính là nơi các bạn có thể xử lý dữ liệu

+ Method chính là các dạng phương thức cơ bản: post, get, put, delete, any.

- POST Route: Các thao tác lấy từ form như thêm dữ liệu

- GET Route: Dành cho các 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

- PUT Route: Dành cho thao tác lấy từ form nhưng là cập nhật dữ liệu

- DELETE Route: Dành cho thao tác hành động xóa dữ liệu

- 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

- Ngoài ra các bạn còn có thể tùy chỉnh rất nhiều trong phần Route này theo cú pháp:

Trang 12

hướng sẽ gọi tới controller là ProducController và phương thức (action) là list.

localhost/kienthuc24h/san-Bạn đang xem sản phẩm nokia520 có ID = 1

- Ngoài ra các bạn hoàn toàn có thể kiểm tra dữ liệu của tham số truyền vào bằng cách sử dụng thêm phương thức where()

Ví dụ:

Route::get(‘/san-pham/{name}/{id}’, function($name,$id){

echo ‘Bạn đang xem sản phẩm’.$name.’có ID = ’.&id; })->where(array(‘name’=>’[a-z]+’,’id’=>’[0-9]+’));

Ở trường hợp trên ta xét với điều kiện kiểm tra sẽ là sản phẩm(name)

sẽ là các ký tự thường từ a-z còn id sẽ là các số tự nhiên từ 0-9

2.5.3 Route Filters

- Đây chính là phần bộ lọc định tuyến, nó cho phép chúng ta có thể kiểmtra trước khi cập nhật vào đường dẫn đó (URI) Ứng dụng trong thực tế là kiểm tratrạng thái đăng nhập trước khi cho phép truy cập vào 1 trang nào đó

- Filter chia ra 2 loại là before và after

+ Before: Nghĩa là request trước khi tới routing

+ After: Nghĩa là request sau khi tới routing

Trên thực tế thì Before thường được sử dụng nhiều hơn

- Cú pháp cơ bản:

Route::filter(“tên filter”, function(){

// code xử lý

Trang 13

Route:: filter(“checklogin”, function(){

if(session::get(‘login’)!=1){

return Redirect::to(“/dang-nhap”);

} });

Đoạn code trên mình xây dựng 1Filter có tên là checklogin đang thực hiệnkiểm tra xem biến session login có bằng 1, ý định của mình ở đây là kiểm tra xem

đã đăng nhập chưa Nếu chưa đăng nhập thì lập tức chuyển về trang đăng nhập

Tiếp theo ta có đoạn code:

Route::get(‘/them-san-pham’, array(“before”=>”checklogin”,”uses”=>

”ProductController@store”));

Với đoạn code trên mình đã thêm vào khóa before chỉ tới checklogin.Chính là filter ta đã thiết lập trước đó, và đẩy nó sang controllerProductController với action là store dựa vào khóa uses

- Như vậy, khi các bạn truy cập vào link them-san-pham thì lúc này

nó sẽ kiểm tra Filter checklogin trước

- Với bất kỳ link nào đó mà bạn muốn kiểm tra đăng nhập thì chỉ cần

sử dụng “before”=>”checklogin” là được

- Filter trong Laravel Framework còn cho phép chúng ta truyền giá trị vào dựa vào cú pháp sau:

Route::filter(‘Tên filter’, function($route, $request,$value)

{ // code xử lý, kiểm tra dữ liệu

} });

Route::get(‘/check-id’,array(“before”=>”checkId:-1”,”uses”=>”

DemoController@checkid“));

13

Trang 14

+ Như vậy khi các bạn chạy link check-id lúc này sẽ gọi tới Filter checkId

để kiểm tra, và giá trị mình gửi sang bên Filter đó chính là -1(checkId:-1)

- Qua những ví dụ này các bạn thấy được ý nghĩa và sức mạnh củafilter trong thực tế phải không nào Với filter ta có thể tối giản code ở mức caonhất và tái sử dụng vô cùng đơn giản

echo “<a href=’$url’>Chi tiết sản phẩm</a>”;

+ as: Là tên của route (product)

+ uses: Route này sẽ sử dụng controller (ProductController) nào và action (view) nào

+ Thư viện URL, sử dụng phương thức route với cú pháp sau:

URL::route(“tên route”, array(‘chứa đối số’));

Sau khi chạy đoạn code trên chúng ta sẽ có $url=/san-pham/nokia520/1

- Tiếp đến ta xây dựng 1 controller với nội dung sau:

và kết quả sẽ hiển thị ra như sau:

Bạn đang xem sản phẩm nokia520 có ID = 1

Trang 15

2.5.5 Route Groups

- Route Groups sẽ giúp chúng ta có thể nhóm các Route mà cần thôngqua bộ lọc định tuyến nào đó (Filter) Như với ví dụ trên chúng ta có Filter làchecklogin, giả sử chúng ta có rất nhiều trang cần sử dụng bộ lọc kiểm tra đăngnhập này, không lẻ chúng ta phải viết tất cả các khóa before Nhưng khi sử dụngRoute Groups các bạn chỉ cần viết 1 lần khóa before cho nhóm đó

Ví dụ:

Route::group(array(“before”=>”checklogin”), function() { Route::get(‘/them-san-

pham’,array(“uses”=>”ProductControl

ler@store”));

Route::get(‘/cap-nhat-san-pham’,array(“uses”=>”Product Controller@update”));

Route::get(‘/them-danh-muc’,array(“uses”=>”CatalogControl ler@store”));

Ngày đăng: 09/03/2023, 06:08

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w