Tải bản đầy đủ (.pdf) (48 trang)

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

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 (1.04 MB, 48 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

BỘ GIÁO DỤC ĐÀO TẠO

<b>TRƯỜNG ĐẠI HỌC THĂNG LONG </b>

---o0o---

<b>BÁO CÁO THỰC TẬP TỐT NGHIỆP </b>

<b>THỰC TẬP LẬP TRÌNH WEBSITE SỬ DỤNG PHP LARAVEL </b>

Giáo viên hướng dẫn: TS. Mai Thúy Nga

<b>Sinh viên thực hiện: Hoàng Hải Dương </b>

<b>Mã sinh viên: A30517 </b>

<b>Chuyên ngành: Khoa học máy tính </b>

<b>Hà Nội - 2020 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

BỘ GIÁO DỤC ĐÀO TẠO

<b>TRƯỜNG ĐẠI HỌC THĂNG LONG </b>

---o0o---

<b>BÁO CÁO THỰC TẬP TỐT NGHIỆP </b>

<b>THỰC TẬP LẬP TRÌNH WEBSITE SỬ DỤNG PHP LARAVEL </b>

Giáo viên hướng dẫn: TS. Mai Thúy Nga

<b>Sinh viên thực hiện: Hoàng Hải Dương </b>

<b>Mã sinh viên: A30517 </b>

<b>Hà Nội - 2020 </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN </b>

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 Tố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 Tốn Tin – – Đạ học Thăng Long. Cơ là người đã hướng dẫn tận tình i để em có thể hồ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ể hồn thành q 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!

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>Mục Lục </b>

<b>CHƯƠNG 1. TỔNG QUAN VỀ MÔI TRƯỜNG THỰC TẬP ... 1 </b>

<b>1.1.Tổng quan về công ty ... 1</b>

1.1.1.<small> Tên công ty, loại hình cơng ty: ... 1 </small>

1.1.2.<small> Lịch sử phát triển của cơng ty: ... 1 </small>

<b>1.2.Hoạt động chính của cơng ty ... 1</b>

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

<b>2.3. Framework Laravel ... 6</b>

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

<b>III. NỘI DUNG THỰC TẬP Ở DOANH NGHIỆP ... 9 </b>

<b>3.1. Nhiệm vụ được giao ... 9</b>

<b>3.2. Tìm hiểu về URL ... 9</b>

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

<b>3.3. URL ảnh hưởng tới SEO như thế nào? ... 14</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>3.4. Tại sao làm SEO cần tối ưu hóa Đường dẫn URL? ... 16</b>

<b>3.5. Cách tối ưu thẻ URL ... 16</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>DANH MỤC TỪ VIẾT TẮT </b>

DB Url

Database

Uniform Resource Locator

SQL MVC

Structured Query Language Model view - controller –

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>MỤC LỤC SƠ ĐỒ, BẢNG BIỂU </b>

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

<b>Hình 4.2. Migrations tạo bảng rule……….22 </b>

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>LỊCH LÀM VIỆC </b>

Họ và tên sinh viên: Hồ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òaThời gian thực tập: 13/4 – 13/6

Tuần Nội dung công việc được

giao <sup>Tự nhận xét về </sup>mức độ hoàn thành

Nhận xét của

CB hướng dẫn CB hướng dẫn <sup>Chữ ký của </sup>

1 (13-18/4)

- Học về framework Laravel - Chuyển Project cá nhân đang sử dụng ngôn ngữ PHP 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ề framework Laravel - Sau khi xem xong tài liệu xây dựng Blog có các chức năng:

1) Danh mục bài viết 2) Đăng ký, đăng nhập 3) Bình luận bài viết 4) Thông báo 5) Trang quản trị admin 6) Gửi Email 7) Thẻ Tag của bài viết

Tốt

3 (27/4-2/5)

- 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

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

3) 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 Google

4 (4-9/5)

- Thêm trang SEO - (HOME) Trang listing tất cả các tuyến 1) Trên màn hình home:

Các tuyến phổ biến, bổ sung thêm nút "xem thêm"

2) Vào trang listing tất cả các tuyến

3) Có form search như trang home

4) Có URL: tinh

xe-khach-lien-Tốt

5 (11-16/5)

- Xây dựng trang quản lý URLs dạng tree - Các URL được sắp xếp đúng theo các mục lục - Có nút tìm kiếm URL free text

Xây dựng cơng cụ có thể đặt 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ácURL, có thể xem nhanh được các URL nào đang sử dụng

Tốt

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

rule, 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 mới

Tốt

8 (1-6/6)

- Cấu hình index cho URL ở CMS, để tơi có thể chỉnh sửa index cho các URL khơng cần thiết

- Cấu hình canonical cho URL ở CMS, để tơi có thể hợp nhất các URL

Tốt

9 (8-13/6)

- Viết API Gửi thông tin về hạng khách hàng và discount tương ứng sang ERP CR để sale báo giá giảm giá đặt xe hợp đồng cho khách hàng có hạng Diamond & Gold

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<small>Hoàng H i Dảương – A30517 Page 1 </small>

<b>1.1. Tổng quan về công ty </b>

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 tồ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”

<b>1.2. Hoạt động chính của cơng ty </b>

- 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 q 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:

Ban Quản trị Phòng thiết kế Phịng maketing

Phịng cơng nghệ bao gồm: o Đội hệ thống

o Đội ERP o Đội Sàn o Đội Car rental o Đội Tester

Hoạt động chính của cơng ty: Xây dựng hệ sinh thái app, web site, hệ thống hỗ trợ marketing, ERP, quản lí nhân sự, … cho công ty mẹ Hải Vân

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<small>Hoàng H i Dảương – A30517 Page 3 </small>

<b>1.3. Bộ phận thực tập </b>

Tên bộ phận thực tập: Đội Sàn Công việc thực tập:

<b> 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 </b>

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.

<b> 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 </b>

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 q 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.

<b>2.2. Mơ hình MVC </b>

2.2.1. Mơ hình MVC là gì?

<b>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 </b>

đí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 : –

<b>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ở </b>

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…

<b>View : là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình </b>

ả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.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<small>Hoàng H i Dảương – A30517 Page 24 </small>‘/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

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<small>Hoàng H i Dảương – A30517 Page 25 </small>

<b>Hình 4.5. Model Url để thao tác với dữ liệu bảng url </b>

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

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<small>Hoàng H i Dảương – A30517 Page 26 </small>

<b>- Giao diện trang quản lí URL </b>

Hình 4.9. Giao diện trang quản lí Urls

<b>-Giao diện trang thê</b>m mới URL

Hình 4.10. Giao diện thêm mới Url

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

<small>Hoàng H i Dảương – A30517 Page 27 </small>

<b>- Giao diện trang chỉnh sửa URL </b>

Hình 4.11. Giao diện trang Chỉnh sửa Url

<b>- Giao diện trang tạo Rule cho Url </b>

Hình 4.12. Giao diện trang tạo Rule cho Url

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

<small>Hoàng H i Dảương – A30517 Page 28 </small>

<b>- Giao diện trang tìm kiếm Url </b>

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

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

<small>Hoàng H i Dảương – A30517 Page 29 </small>- 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

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

<small>Hoàng H i Dảương – A30517 Page 30 </small>Hình 4.16. Function xử lí tạo Rule cho Urls(1)

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

<small>Hoàng H i Dảương – A30517 Page 31 </small>Hình 4.17. Function xử lí tạo Rule cho Urls(2)

</div><span class="text_page_counter">Trang 41</span><div class="page_container" data-page="41">

<small>Hoàng H i Dảương – A30517 Page 32 </small>- Hàm addUrl() xử lí thêm mới Url

Hình 4.18. Function xử lí thêm Url mới(1)

</div><span class="text_page_counter">Trang 42</span><div class="page_container" data-page="42">

<small>Hoàng H i Dảương – A30517 Page 33 </small>Hình 4.19. Function xử lí thêm Url mới(2)

</div><span class="text_page_counter">Trang 43</span><div class="page_container" data-page="43">

<small>Hoàng H i Dảương – A30517 Page 34 </small>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

</div><span class="text_page_counter">Trang 44</span><div class="page_container" data-page="44">

<small>Hoàng H i Dảương – A30517 Page 35 </small>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)

</div><span class="text_page_counter">Trang 45</span><div class="page_container" data-page="45">

<small>Hoàng H i Dảương – A30517 Page 36 </small>Hình 4.23. Function xử lí chỉnh sửa Url(3)

</div><span class="text_page_counter">Trang 46</span><div class="page_container" data-page="46">

<small>Hồng H i Dảương – A30517 Page 37 </small>- Hàm searchUrl() xử lí tìm kiếm Url

Hình 4.24. Function xử lí tìm kiếm Url

</div><span class="text_page_counter">Trang 47</span><div class="page_container" data-page="47">

<small>Hoàng H i Dảương – A30517 Page 38 </small>

<b>Kết luận </b>

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, q 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 … Ngồ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.

</div><span class="text_page_counter">Trang 48</span><div class="page_container" data-page="48">

<b>DANH MỤC TÀI LIỆU THAM KHẢO </b>

[1] “Laravel là gì? Lợi ích của laravel.” [Online]. Available: [Accessed: 26-6-2020].

[2] “Laravel.” [Online]. Available: [Accessed: 26-6-2020]. [3] “Đôi điều về mô hình MVC.” [Online]. Available: a/p/doi-dieu-

[6] “Canonical Url là gì? Tối ưu trong SEO như thế nào” [online]. Available: [Accessed: 26-2-2020]

[7] “Phân biệt redirect 301, 302 và cách dung cho SEO” [Online]. Available: [Accessed: 26-6-2020]

</div>

×