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

25 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Báo Cáo Thực Tập Tốt Nghiệp 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
Năm xuất bản 2019
Thành phố TP.HCM
Định dạng
Số trang 25
Dung lượng 2,4 MB

Nội dung

Laravel framework dùng mã nguồn mở miễn phí, vì thế nênLaravel framework có thể được cài đặt trên hầu hết các Web Server thông dụnghiện nay như Apache, IIS… dễ học khi đã biết HTML, C, O

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: CCQ1611AGVHD: Ths Chu Thị Mai

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 cfíu (các kết quả cần đạt được) 3

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

4 Phương pháp nghiên cfí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 sfí dụng PHP Framework? 5

1.3 Tại sao nên sfí 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 fíng dụng 9

2.4 Chạy fí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

2.7.1 Khai báo Controller trong Laravel Framework: 16

2.7.2 Chạy Controller theo phương thfíc Route::get 17

Trang 3

2.7.3 Implicit Controllers – Sfí dụng phương thfíc Route::controller 17

2.7.4 RESTful Resource Controllers – Sfí dụng phương thfíc Route::resource.18 2.7.5 Controller với Filter 20

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

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

2.8.2 Database Transactions 22

2.9 Sfí dụng Query Builder 23

2.9.1 Truy vấn dfi liệu 24

2.9.2 Join bảng dfi 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 dfi liệu 27

2.9.6 Câu lệnh Updates dfi liệu 27

2.9.7 Câu lệnh Deletes dfi liệu 27

2.9.8 Câu lệnh Union 28

2.10 Eloquent ORM 28

2.10.1 Lấy dfi liệu 28

2.10.2 Thêm dfi liệu (Insert) 29

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

2.10.4 Xóa dfi liệu (Delete) 29

2.11 Sfí 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

Trang 4

4.2 Hướng phát triển 40 DANH MỤC TÀI LIỆU THAM KHẢO 41

Trang 5

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, nfi, 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 doanhsang lĩnh vực thương mại điện tfí vì thế cần có website để kinh doanh.

 Hiện nay có thể xem công nghệ xây dựng web bằng Laravel frameworkrất phổ biến Laravel framework dùng mã nguồn mở miễn phí, vì thế nênLaravel framework có thể được cài đặt trên hầu hết các Web Server thông dụnghiện nay như Apache, IIS… dễ học khi đã biết HTML, C, OOP (vì php đượcphát triển trên nền tảng C, OOP ), có nhiều websever cấu hình đơn giản nhưXAMPP, WAMPP,… thư viện phong phú (Joomla, wordpress…), có tính bảomật, thích hợp cho làm việc nhóm Tuy nhiên ngoài nhfing ưu điểm bên cách

đó Laravel framework còn có nhược điểm là chỉ chạy trên fí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 sfí 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 cfíu:

Trang 6

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 7

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 ngfi script rất phổ biến hiện nay bởi nhfing lý do: linh hoạt, dễ sfí

dụng, dễ học, v…v nhưng đôi khi việc viết mã PHP, hay bất cfí ngôn ngfi (lậptrì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 nhfing fíng dụng web viết bằngngôn ngfi 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âydựng nhfing fíng dụng đó Hay nói cách khác, PHP Framework giúp đỡ các bạnthúc đẩy nhanh chóng quá trình phát triển fíng dụng, giúp bạn tiết kiệm được thờigian, tăng sự ổn định cho fíng dụng, và giảm thiểu số lần phải viết lại mã cho lậptrình viên Ngoài ra Framework còn giúp nhfing người mới bắt đầu có thể xây dựngcác fíng dụng ổn định hơn nhờ việc tương tác chính xác gifia 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ềuthời gian để tạo ra các fíng dụng web, hơn là phí thời gian để viết các đoạn mã lặplại trong 1 project

Ý tưởng chung đằng sau cách thfí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) trong lậ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êng biệt, điềunày đồng nghĩa với việc ta có thể chỉnh sfía chúng 1 cách riêng lẻ Trong cụm tfi

MVC thì: Model (M) có thể hiểu là phần xfí lý các thao tác về nghiệp vụ ( business logic), View được hiểu là phần xfí lý lớp giao diện ( presentation layer), vàController làm nhiệm vụ lọc các request đc gọi tfi user, có chfíc năng như 1 route:điều chỉnh, phân luồng các yêu cầu để gọi đúng Model & View thích hợp Về cơbản, MVC chia nhỏ quá trình xfí lý của 1 fíng dụng, vì thế nên bạn có thể làm việctrên tfing thành phần riêng lẻ, trong khi nhfing thành phần khác sẽ không bị ảnhhưở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 phfíc tạphơn

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

Có rất nhiều lý do khác nhau để các lập trình viên sfí dụng PHP Framework,nhưng 1 trong nhfing 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 fíng dụng Việc sfí dụng lại các mã lệnh giống nhau trong nhiềuproject sẽ giúp các bạn tiết kiệm được thời gian và công sfíc 1 cách đáng kể MộtFramework sẽ cung cấp sẵn các module nền tảng cần thiết để xây dựng 1 project, 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 fíng dụngthự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 8

1.3 Tại sao nên sfi 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 sfí 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 đã tfing làm việc với các Framework khác hoặc chỉ là người mới bắtđầu "chập chfíng" tìm hiểu PHP Framework thì việc tiếp cận Laravel Frameworkkhô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ở dfi liệu cực kỳ ngắn gọn và thân thiện, phân trangtrong laravel cực kỳ đơn giản, việc quản lý layout giờ đây thật sự giản đơn vớiLaravel, 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 9

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

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.2: Chfíc năng của các thư mục chính

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

Trang 10

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

Trang 11

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

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ản nàyyêu cầu chạy trên PHP>=5.4, hiện tại tôi đang dùng XAMPP 5.6.3 nên cài được bảnmới nhất của Laravel Nếu các bạn muốn cài đặt bản mới nhất thì chỉ cần dùng lệnhsau:

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íatrên Để biết được có cài Laravel thành công hay không thì chúng ta thfí chạyLaravel 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:

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

Các bạn truy cập vào app/config/app.php và chỉnh sfía lại nhfing thông tin 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 nhfing cookie và session cho website Hoặc các bạn có thể sfí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 ở đây mìnhsfí dụng thư mục kienthuc24h và chạy dòng lệnh sau:

php artisan key:generate

2.4 Chạy fí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 12

- Và các bạn thfí 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ộidung sau:

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

2.5 Route trong Laravel Framework

Mục đích của router là định tuyến đến nhfing controller cụ thể nào tfi phíarequest của người sfí dụng Đối với nhfing Framework khác thì khi các bạn muốnthực hiện 1 công việc nào đó thường chúng ta cần xây dựng 1 controller để xfí lýphải không nào, nhưng trong Laravel thì các bạn hoàn toàn có thể xfí lý dfi liệungay trong phần Router Đây chính là điểm mạnh cũng như điểm khác biệt lớn củaLaravel 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, đây chính

là nơi các bạn có thể xfí lý dfi liệu

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

- POST Route: Các thao tác lấy tfi form như thêm dfi 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 tfi form nhưng là cập nhật dfi liệu

- DELETE Route: Dành cho thao tác hành động xóa dfi 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 sfí 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

Trang 13

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

2.5.2 Route Parameters

- Trong trường hợp các bạn muốn gfíi kèm theo tham số cho bộ định tuyếnthì chỉ cần khai báo theo dạng{Tên tham số} và trong hàm callback chúng ta coi nónhư tham số trong hàm bình thường

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 dfi liệu của tham số truyền vàobằng cách sfí dụng thêm phương thfíc where()

- 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 sfí dụng nhiều hơn

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

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

Trang 14

Đ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 tfí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 controller ProductController vớiaction 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 sfídụng “before”=>”checklogin” là được

- Filter trong Laravel Framework còn cho phép chúng ta truyền giá trị vàodự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 });

+ Như các bạn thấy tham số thfí 3 $value chính là giá trị mà chúng ta sẽ truyền vào, ví dụ:

Route::filter(“checkId”, function($route, $request,$value){

Trang 15

+ 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 gfíi sang bên Filter đó chính là -1(checkId:-1).

- Qua nhfing ví dụ này các bạn thấy được ý nghĩa và sfíc mạnh của filtertrong thực tế phải không nào Với filter ta có thể tối giản code ở mfíc cao nhất và táisfí dụng vô cùng đơn giản

$url= URL::route(“product”,array(‘nokia520’,’1’));

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ẽ sfí dụng controller (ProductController) nào và action(view) nào

+ Thư viện URL, sfí dụng phương thfí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:

<?php

class ProductController extends BaseController{ public function view($name,

$id) { echo ‘Bạn đang xem sản phẩm’.$name.’có ID = ’.$id; }

}

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

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

Trang 16

2.5.5 Route Groups

- Route Groups sẽ giúp chúng ta có thể nhóm các Route mà cần thông qua bộlọc định tuyến nào đó (Filter) Như với ví dụ trên chúng ta có Filter là checklogin,giả sfí chúng ta có rất nhiều trang cần sfí dụng bộ lọc kiểm tra đăng nhập này,không lẻ chúng ta phải viết tất cả các khóa before Nhưng khi sfí dụng RouteGroups 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”));

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

Ví dụ:

Route::group(array(“prefix”=>”admin”,”before”=>”checklogin”), function(){ // phần sử lý nằm ở đây.

Trang 17

Với ví dụ trên thì mình đang nhóm tất cả các link có tiền tố là admin, vàtrước khi truy cập vào nhfing link này mình sẽ thực hiện gọi tới Filter checklogin để kiểm tra xem đã đăng nhập chưa

2.6 View trong Laravel Framework

- Như đã đề cập ở trên thì thư mục view dùng để chfía các file mẫu như html để tương tác với người sfí dụng nằm trong thư mục (app/view)

- Để sfí dụng view ta có thể sfí dụng như sau:

return View::make("Tên",Đối số nếu có);

Ví dụ trong app/route.php ta có đường dẫn sau:

Với cách này bạn đang truyền sang view hoten.php một đối số có tên là $name

Do vậy tại hoten.php bạn có thể dùng nó như sau:

echo "Họ tên của bạn là: $name";

Cách 2: Truyền qua 1 phương thfíc tên with()

Route::get("name3",function(){

return View::make('hoten')->with('name', 'Steve');

Ngày đăng: 22/01/2025, 14:56

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

TÀI LIỆU LIÊN QUAN

w