Qua thời gian thực tập tại công ty, em không chỉ học hỏi được thêm các kiến thức liên quan đến chuyên ngành đang theo học mà còn trau dồi thêm nhiều kỹ năng mềm trong cuộc sống.. Trong q
Trang 1BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC THĂNG LONG
-o0o -
BÁO CÁO THỰC TẬP TỐT NGHIỆP
THỰC TẬP LẬP TRÌNH WEBSITE
SỬ DỤNG PHP LARAVEL
Giáo viên hướng dẫn: TS Mai Thúy Nga
Sinh viên thực hiện: Hoàng Hải Dương
Mã sinh viên: A30517
Chuyên ngành: Khoa học máy tính
Hà Nội - 2020
Trang 2BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC THĂNG LONG
-o0o -
BÁO CÁO THỰC TẬP TỐT NGHIỆP
THỰC TẬP LẬP TRÌNH WEBSITE
SỬ DỤNG PHP LARAVEL
Giáo viên hướng dẫn: TS Mai Thúy Nga
Sinh viên thực hiện: Hoàng Hải Dương
Mã sinh viên: A30517
Hà Nội - 2020
Trang 3LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến với các thầy cô giảng dạy tại trường đại học Thăng Long nói chung và các thầy cô khoa Toán Tin – Đại học Thăng Long nói riêng đã giảng dạy tận tình và trang bị cho em rất nhiều kiến thức trong thời gian qua Đó là những kiến thức quý báu và là nền tảng giúp cho em phát triển trong quá trình thực tập và sau này Đặc biệt, em xin gửi lời cảm ơn chân thành tới cô Mai Thúy Nga giáo viên khoa Toán Tin – – Đạ học Thăng Long Cô là người đã hướng dẫn tận tình i
để em có thể hoàn thành báo cáo thực tập một cách tốt nhất
Tiếp theo em xin được chân thành cảm ơn tới Công ty TNHH Havaz Qua thời gian thực tập tại công ty, em không chỉ học hỏi được thêm các kiến thức liên quan đến chuyên ngành đang theo học mà còn trau dồi thêm nhiều kỹ năng mềm trong cuộc sống Nhữngkiến thức em học được trong quá trình thực tập giúp em đã mở mang và hiểu biết thêm rất nhiều kiến thức Đây là những kiến thức rất quý báu, mới mẻ, thú vị và chắc chắn sẽ rất
có ích cho em khi phát triển trong tương lai Em xin cảm ơn các anh chị trong công ty đãgiúp đỡ, chỉ bảo em trong quá trình thực tập Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến anh Nguyễn Hữu Hòa đã chỉ dạy, hướng dẫn tận tình và chia sẻ nhiều kinh nghiệm đáng giá để em có thể hoàn thành quá trình thực tập đạt hiệu quả
Trong quá trình làm báo cáo thực tập, bài báo cáo khó tránh các thiếu sót, em mong
sẽ nhận được ý kiến đóng góp của các thầy cô để em có thể có thêm nhiều kinh nghiệm và làm tốt hơn trong các báo cáo khác
Em xin chân thành cảm ơn!
Trang 4Mục Lục
CHƯƠNG 1 TỔNG QUAN VỀ MÔI TRƯỜNG THỰC TẬP 1
1.1 Tổng quan về công ty 1
1.1.1. Tên công ty, loại hình công ty: 1
1.1.2. Lịch sử phát triển của công ty: 1
1.2 Hoạt động chính của công ty 1
1.3 Bộ phận thực tập 3
II GIỚI THIỆU VỀ LARAVEL FRAMEWORK 3
2.1 Framework là gì? 3
2.2 Mô hình MVC 3
2.2.1 Mô hình MVC là gì? 3
2.2.2 Các thành phần của mô hình MVC 3
2.2.3 Luồng đi trong mô hình MVC 4
2.2.4 Ưu & nhược điểm của mô hình MVC 5
2.3 Framework Laravel 6
2.3.1 Laravel là gì? 6
2.3.2 Những lý do khiến Laravel trở nên rộng rãi 6
2.3.3 Hướng dẫn cài đặt Laravel 7
III NỘI DUNG THỰC TẬP Ở DOANH NGHIỆP 9
3.1 Nhiệm vụ được giao 9
3.2 Tìm hiểu về URL 9
3.2.1 URL là gì? 9
3.2.2 Friendly URL là gì? 9
3.2.3 Cấu trúc của URL 10
3.2.4 Thành phần bổ sung của URL 12
3.2.5 Phân loại URL 13
3.2.6 Công dụng của URL 14
3.3 URL ảnh hưởng tới SEO như thế nào? 14
Trang 53.4 Tại sao làm SEO cần tối ưu hóa Đường dẫn URL? 16
3.5 Cách tối ưu thẻ URL 16
3.6 Redirect Url 17
3.7 Canonical Url 17
IV THỰC HIỆN XÂY DỰNG TRANG QUẢN LÝ URLS 19
4.1 Các vấn đề cần giải quyết 19
4.2 Cách thức thực hiện 21
4.2.1 Xây dựng Database lưu trữ URL 21
4.2.2 Tạo route 23
4.2.3 Tạo model 24
4.2.4 Tạo views 25
4.2.5 Tạo Controller 28
Trang 7MỤC LỤC SƠ ĐỒ, BẢNG BIỂU
Hình 2.1 Luồng đi của mô hình MVC……… 4
Hình 2.2 Kịch bản mô hình hoạt động theo mô hình MVC………4
Hình 2.3 Laradock……… 8
Hình 3.1 Ví dụ về Url thân thiện ………9
Hình 3.2 Cấu trúc của một Url……….10
Hình 3.3 Thành phần của hostname Url………11
Hình 4.1 Migrations tạo bảng url……… 22
Hình 4.2 Migrations tạo bảng rule……….22
Hình 4.3 Migrations tạo bảng url_redirect……… ……… .23
Hình 4.4 Danh sách các route………23
Hình 4.5 Model Url để thao tác với dữ liệu bảng url……….……… 24
Hình 4.6 Model Rule để thao tác với dữ liệu bảng Rule……… 25
Hình 4.7 Model UrlRedirect để thao tác với dữ liệu bảng url_redirect……….25
Hình 4.8 Danh sách các view……….25
Hình 4.9 Giao diện trang quản lí Urls………26
Hình 4.10 Giao diện thêm mới Url……….…26
Hình 4.11 Giao diện trang Chỉnh sửa Url……… 27
Hình 4.12 Giao diện trang tạo Rule cho Url……… 27
Hình 4.13 Giao diện trang tìm kiếm Urls……… 28
Hình 4.14 Class AdminSeoController………28
Hình 4.15 Function xử lí dữ liệu cho trang quản lí Urls………29
Hình 4.16 Function xử lí tạo Rule cho Urls(1)……… 30
Hình 4.17 Function xử lí tạo Rule cho Urls(2)……… 31
Hình 4.18 Function xử lí thêm Url mới(1)………32
Hình 4.19 Function xử lí thêm Url mới(2)………33
Hình 4.20 Function xử lí thêm Url mới(3)………34
Hình 4.21 Function xử lí chỉnh sửa Url(1)………34
Hình 4.22 Function xử lí chỉnh sửa Url(2)………35
Hình 4.23 Function xử lí chỉnh sửa Url(3)………36
Hình 4.24 Function xử lí tìm kiếm Url……… 37
Trang 8LỊCH LÀM VIỆC
Họ và tên sinh viên: Hoàng Hải Dương
Cơ quan/Đơn vị thực tập: CÔNG TY TNHH HAVAZ
Họ và tên người hướng dẫn: Nguyễn Hữu Hòa
MVC thuần sang Framework
Laravel để kiểm tra kiến thức
và học Framework Laravel
Tốt
2
(20-25/4)
- Được giao tài liệu tiếp tục
tìm hiểu sâu hơn về
- Tiếp nhận source code
backend và frontend của
trang chủ Haivan.com
- Xem source code và tìm
hiểu về quy trình nghiệp vụ
- Tiếp nhận task SEO cho
Haivan.com
1) SEO - (Listing chuyến)
Bổ sung thông tin tuyến
(thẻ H1)
2) SEO - (Listing chuyến)
Rating của tuyến
Tốt
Trang 93) Thêm dữ liệu có cấu trúc
Schema Markup vào
website SEO –
4) Kiểm tra được dữ liệu có
cấu trúc của trang Xe
liên tỉnh của haivan.com
trên công cụ kiểm tra dữ
liệu có cấu trúc của
4
(4-9/5)
- Thêm trang SEO - (HOME)
Trang listing tất cả các tuyến
rule cho tất cả các URL
- Xây dựng công cụ thêm
URL vào danh sách thư mục
- Được chỉnh sửa slug, meta
title, meta keywords, meta
description, redirect, Index và
canonical
Tốt
6
(18-23/5)
- Thêm snippet choMeta
keywords, meta title, meta
description
- Chức năng tạo rule cho url
Hiển thị danh sách tất cả các
URL, có thể xem nhanh được
các URL nào đang sử dụng
Tốt
Trang 10rule, index, redirect
7
(25-30/5)
- Xây dựng trang chỉnh
sửa các Url cho trường slug,
meta title, meta keywords và
meta desciption
- Cấu hình redirect cho các
URLs ở CMS, để có thể
chuyển hướng URL đã hết
hạn hoặc bị xóa sang URL
tương ứng sang ERP CR để
sale báo giá giảm giá đặt xe
Trang 11Hoàng H i D ả ương – A30517 Page 1
1.1 Tổng quan về công ty
1.1.1 Tên công ty, loại hình công ty:
- Tên công ty: CÔNG TY TNHH HAVAZ
- Tên công ty viết tắt: HAVAZ
- Loại hình công ty: Công ty trách nhiệm hữu hạn
1.1.2 Lịch sử phát triển của công ty:
Công ty TNHH Havaz được thành lập vào ngày 31/08/2018 dựa trên sự kế thừa kinh nghiệm hơn 20 năm của Công ty Liên doanh Vận chuyển Quốc tế Hải Vân (gọi tắt là Hải Vân) – doanh nghiệp hàng đầu trong lĩnh vực vận tải hành khách
Havaz bổ sung thêm chữ Z với định hướng cung cấp dịch vụ vận tải công nghệ 4.0 một cách toàn diện, từ A đến Z
“Với mỗi hành khách, HAVAZ là một thương hiệu vận tải công nghệ chuyên nghiệp,
tử tế và đáng tin cậy, với quy mô rộng lớn cùng sự hiểu biết sâu sắc nhu cầu của hành khách, kết nối mọi hành trình để cung cấp tới khách hàng giải pháp vận chuyển toàn diện, mọi lúc mọi nơi với mức chi phí hợp lý
HAVAZ – Chu đáo trên mọi nẻo đường”
1.2 Hoạt động chính của công ty
- Nhiệm vụ chính của công ty Havaz là xây dựng hệ sinh thái công nghệ thông tin để phục vụ vào quá trình vận hành của công ty mẹ là Công ty Liên doanh Vận chuyển quốc tế Hải Vân
- Havaz được sinh ra nhằm phục vụ việc thay đổi hình thức vận hành truyền thống của công ty mẹ trước đây từ công ty vận tải đơn thuần trở thành công ty vận tải công nghệ
- Cơ cấu tổ chức của công ty gồm:
Trang 12Hoàng H i D ả ương – A30517 Page 3
1.3 Bộ phận thực tập
Tên bộ phận thực tập: Đội Sàn
Công việc thực tập:
o Học framework laravel
o Lập trình website s dử ụng laravel frameworl
o Tìm hiểu nghiệp vụ của Đội Sàn
II GIỚI THIỆU VỀ LARAVEL FRAMEWORK
2.1 Framework là gì?
Framework chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lập
trình viên sử dụng thay vì phải tự thiết kế Có Framework, lập trình viên chỉ tìm hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản phẩm của mình Đối với lập trình viên trong mỗi một lĩnh vực, họ cần phải xây dựng các lớp chương trình để xây dựng nên những phần mềm, ứng dụng thành phẩm
PHP framework là thư viện 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 bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng Giúp bạn tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng Giảm thiểu số lần phải viết lại code cho lập trình viên
2.2 Mô hình MVC
2.2.1 Mô hình MVC là gì?
MVC (Model-View-Controller) là mẫu kiến trúc phần mềm trên máy tính nhằm mục
đích tạo lập giao diện cho người dùng Theo đó, hệ thống MVC được chia thành ba phần
có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao diện người dùng
2.2.2 Các thành phần của mô hình MVC
Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View Controller : –
Model : là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở
dữ liệu (mysql, mssql… ); nó sẽ bao gồm các class/function xử lý nhiều nghiệp
vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…
View : là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình
ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với
hệ thống
Trang 33Hoàng H i D ả ương – A30517 Page 24
‘/editUrl/{id}’ Route cho
trang sửa thông tin Url
GET, POST AdminSeoController editUrl()
‘/addUrl/{id}’ Route cho
trang thêm Url
mới
GET, POST AdminSeoController addUrl()
‘/createRule/{id?}’ Route cho
trang tạo rule Url
GET, POST AdminSeoController createRule()
‘/getUrlGroup’ Route xử lý
truyền dữ liệu Ajax
GET AdminSeoController getUrlGroup()
4.2.3 Tạo model
Trang 34Hoàng H i D ả ương – A30517 Page 25
Hình 4.5 Model Url để thao tác với dữ liệu bảng url
Hình 4.6 Model Rule để thao tác với dữ liệu bảng Rule
Hình 4.7 Model UrlRedirect để thao tác với dữ liệu bảng url_redirect
4.2.4 Tạo views
Hình 4.8 Danh sách các view
Trang 35Hoàng H i D ả ương – A30517 Page 26
- Giao diện trang quản lí URL
Hình 4.9 Giao diện trang quản lí Urls
-Giao diện trang thêm mới URL
Hình 4.10 Giao diện thêm mới Url
Trang 36Hoàng H i D ả ương – A30517 Page 27
- Giao diện trang chỉnh sửa URL
Hình 4.11 Giao diện trang Chỉnh sửa Url
- Giao diện trang tạo Rule cho Url
Hình 4.12 Giao diện trang tạo Rule cho Url
Trang 37Hoàng H i D ả ương – A30517 Page 28
- Giao diện trang tìm kiếm Url
Hình 4.13 Giao diện trang tìm kiếm Urls
4.2.5 Tạo Controller
Tạo controller AdminSeoController để chứa tất cả các hàm sử lí liên quan đến các trang phục vụ quản lý Url
Hình 4.14 Class AdminSeoController
Trang 38Hoàng H i D ả ương – A30517 Page 29
- Hàm index() sử lí dữ liệu cho trang quản lý Urls
Hình 4.15 Function xử lí dữ liệu cho trang quản lí Urls
- Hàm createRule() xử lí tạo rule cho Url
Trang 39Hoàng H i D ả ương – A30517 Page 30
Hình 4.16 Function xử lí tạo Rule cho Urls(1)
Trang 40Hoàng H i D ả ương – A30517 Page 31
Hình 4.17 Function xử lí tạo Rule cho Urls(2)
Trang 41Hoàng H i D ả ương – A30517 Page 32
- Hàm addUrl() xử lí thêm mới Url
Hình 4.18 Function xử lí thêm Url mới(1)
Trang 42Hoàng H i D ả ương – A30517 Page 33
Hình 4.19 Function xử lí thêm Url mới(2)
Trang 43Hoàng H i D ả ương – A30517 Page 34
Hình 4.20 Function xử lí thêm Url mới(3)
- Hàm editUrl() xử lí chỉnh sửa thông tin Url
Trang 44Hoàng H i D ả ương – A30517 Page 35
Hình 4.21 Function xử lí chỉnh sửa Url(1)
Hình 4.22 Function xử lí chỉnh sửa Url(2)
Trang 45Hoàng H i D ả ương – A30517 Page 36
Hình 4.23 Function xử lí chỉnh sửa Url(3)
Trang 46Hoàng H i D ả ương – A30517 Page 37
- Hàm searchUrl() xử lí tìm kiếm Url
Hình 4.24 Function xử lí tìm kiếm Url
Trang 47Hoàng H i D ả ương – A30517 Page 38
Kết luận
Việc thực tập tại công ty TNHH Havaz đã giúp em trau dồi được rất nhiều kiến thức bổ ích, quý báu và hiểu thêm về môi trường làm việc thực tế Về kiến thức chuyên ngành, em đã học hỏi được rất nhiều bài học và kiến thức mới mẻ: laravel, design pattern, cache, helpers, task scheduling … Ngoài ra, em còn được trau dồi thêm kỹ năng làm việc nhóm, hiểu biết thêm về cách thức hoạt động và các bộ phận làm việc trong một công ty trên thực tế như thế nào
Trang 48DANH MỤC TÀI LIỆU THAM KHẢO
[1] “Laravel là gì? Lợi ích của laravel.” [Online] Available:
https://wiki.matbao.net/laravel-la-gi-huong-dan-cai-dat-laravel-nhanh-chong/#framework-laravel-la-gi [Accessed: 26-6-2020]
[2] “Laravel.” [Online] Available: https://laravel.com/ [Accessed: 26-6-2020] [3] “Đôi điều về mô hình MVC.” [Online] Available: https://viblo.asia/p/doi-dieu-ve-mo-hinh-mvc-E375z0vJZGW [Accessed: 26-6-2020]
[4] “Giới thiệu về Laradock.” [Online] Available: laradock-lxrRXNDbzeO [Accessed: 26-6-2020]
https://viblo.asia/p/gioi-thieu-ve-[5] “URL là gì? Friendly URL là gì? Hướng dẫn tối ưu hóa cho SEO” [online] Available:https://wiki.matbao.net/url-la-gi-friendly-url-la-gi-huong-dan-toi-uu-url-cho-seo/#duong-dan-url-la-gi [Accessed: 26-6-2020]
[6] “Canonical Url là gì? Tối ưu trong SEO như thế nào” [online] Available: https://carly.com.vn/blog/canonical-url-la-gi/#canonical-url-la-gi [Accessed: 26-2-2020]
[7] “Phân biệt redirect 301, 302 và cách dung cho SEO” [Online] Available: https://www.chidoanh.com/blog/seo/phan-biet-redirect-301-va-302-cach-dung-choseo#:~:text=301%20Redirect%20(Moved%20permanently)%20l%C3%A0,chuy%E1%BB%83n%20h%E1%BA%BFt%20sang%20URL%20m%E1%BB%9
Bi [Accessed: 26-6-2020]