1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Hệ thống quản lý cán bộ, giảng viên khoa toán lý tin trường đại học tây bắc

57 233 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

Định dạng
Số trang 57
Dung lượng 2,31 MB

Nội dung

Trên toàn bộ, “cuộc chiến” trình duyệt đã dẫn đến nhiều sáng tạo tích cực và giúp thiết kế web phát triển với một tốc độ nhanh chóng Sự phát triển của thiết kế website: Năm 1996, Micros

Trang 1

TRƯỜNG ĐẠI HỌC TÂY BẮC

KHOA TOÁN – LÝ – TIN - -

DƯƠNG VĂN TOẢN

XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TIN CÁN BỘ GIẢNG VIÊN KHOA TOÁN – LÝ – TIN TRƯỜNG ĐẠI HỌC

TÂY BẮC

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

Sơn La, năm 2018

Trang 2

TRƯỜNG ĐẠI HỌC TÂY BẮC

KHOA TOÁN – LÝ – TIN - -

DƯƠNG VĂN TOẢN

XÂY DỰNG HỆ THỐNG QUẢN LÝ THÔNG TIN CÁN BỘ GIẢNG VIÊN KHOA TOÁN – LÝ – TIN TRƯỜNG ĐẠI HỌC

Trang 3

LỜI CẢM ƠN

Sau một thời gian học tập, nghiên cứu và triển khai đề tài: “Xây dựng hệ thống quản lý cán bộ, giảng viên khoa Toán - Lý - Tin Trường Đại học Tây Bắc”, đến nay em đã hoàn thành bài khóa luận của mình

Em xin bày tỏ tấm lòng biết ơn sâu sắc nhất tới thầy giáo - Thạc sỹ Nguyễn Duy Hiếu đã trực tiếp hướng dẫn em trong suốt quá trình em thực hiện khóa luận

Đồng thời em cũng chân thành cảm ơn tới lãnh đạo Nhà trường, Ban chủ nhiệm Khoa cùng các thầy cô giáo đã giúp đỡ, tạo điều kiện để em có cơ hội nghiên cứu, học tập và hoàn thành bài khóa luận này

Do hạn chế về trình độ chuyên môn và thời gian thực hiện khóa luận không tránh khỏi những thiếu sót, rất mong nhận được sự góp ý của thầy cô để

em có thể hoàn thành tốt nhất đề tài này

Em xin chân thành cảm ơn!

Sơn La, tháng 05 năm 2018

Sinh viên

Dương Văn Toản

Trang 4

MỤC LỤC

PHẦN MỞ ĐẦU 1

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

2 Mục đích, nhiệm vụ nghiên cứu 1

3 Đối tượng nghiên cứu 1

4 Phạm vi nghiên cứu 1

5 Phương pháp nghiên cứu 1

6 Cấu trúc của đề tài 1

CHƯƠNG 1: TỔNG QUAN VỀ THIẾT KẾ WEB 3

1.1 Lịch sử hình thành của thiết kế web 3

1.2 Xu hướng phát triển của thiết kế web 6

1.2.1 Mobile-first 6

1.2.2 Thiết kế website - Responsive Web Design 6

1.2.3 Sử dụng các framework của CSS và JavaScript 7

1.3 Căn bản về HTML/HTML5 7

1.3.1 HTML là gì? 7

1.3.2 Tập tin HTML là gì? 7

1.3.3 Thẻ trong HTML 7

1.3.4 Cấu trúc của một tài liệu HTML 8

1.3.5 Các phiên bản HTML 8

1.4 Căn bản về CSS/CSS3 9

1.4.1 CSS là gì? 9

1.4.2 Lịch sử CSS 9

1.4.3 Lợi thế của CSS 9

1.5 Căn bản về JavaScript 10

1.5.1 JavaScript là gì? 10

1.5.2 Các lợi thế của JavaScript 11

1.5.3 Hạn chế của JavaScript 11

CHƯƠNG 2: GIỚI THIỆU VÀ TỔNG QUAN VỀ LARAVEL 12

2.1 Giới thiệu về Laravel 12

Trang 5

2.2 Luồng hoạt động của Laravel 12

2.3 Lịch sử phát triển của Laravel 13

2.4 Sơ lược các tính năng cơ bản của Laravel 15

2.5 Các thành phần cơ bản của Laravel 16

2.6 Cách cài đặt Laravel 26

2.6.1 Yêu cầu cấu hình khi cài đặt Laravel 26

2.6.2 Cài đặt Composer 27

2.6.3 Cài đặt Laravel 5.x 27

2.6.4 Chạy Laravel 28

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG QUẢN LÝ CÁN BỘ GIẢNG VIÊN KHOA TOÁN – LÝ – TIN 29

3.1 Phân tích bài toán và đặc tả yêu cầu 29

3.1.1 Mô tả bài toán 29

3.1.2 Biểu đồ use case 30

3.1.3 Biểu đồ hoạt động 35

3.1.4 Biểu đồ lớp 36

3.1.5 Biểu đồ trình tự 37

3.2 Thiết kế 41

3.2.1 Thiết kế cơ sở dữ liệu 41

3.2.2 Thiết kế giao diện 42

KẾT LUẬN VÀ KIẾN NGHỊ 49

1 Kết luận 49

2 Kiến nghị 49

TÀI LIỆU THAM KHẢO 50

Trang 6

MỤC LỤC HÌNH ẢNH

Hình 1 Thiết kế phù hợp với kích thước màn hình của thiết bị 6

Hình 2 Cấu trúc cơ bản 1 tài liệu 8

Hình 3 Biểu đồ luồng hoạt động của laravel 12

Hình 4 Biểu đồ phát triển của một số framework từ 2004 đến nay 13

Hình 5 Hoạt động của middleware 16

Hình 6 Cách hoạt động của request và response 17

Hình 7 Ví dụ cách hoạt động migrate 19

Hình 8 Cách thêm dữ liệu mẫu bằng seeds 20

Hình 9 Cách tạo một model bằng lệnh 21

Hình 10 Sự khác nhau giữa quản lý việc đăng nhập bằng code thường và dùng laravel 22

Hình 11 Giao diện chạy thử comporser 27

Hình 12 Giao diện khi cài đặt thành công laravel 28

Hình 13 Biểu đồ use case tổng quát 30

Hình 14 Phân rã use case quản lý người dùng 31

Hình 15 Phân rã use case quản lý nguyên cứu khoa học 31

Hình 16 Phân rã use case quản lý thưởng 32

Hình 17 Phân rã use case quản lý thưởng 32

Hình 18 Phân rã use case quản lý các bài báo 33

Hình 19 Phân rã use case quản lý lớp chủ nhiệm 33

Hình 20 Phân rã use case quản lý quá trình đào tạo 34

Hình 21 Phân rã use case quản lý chứng chỉ ngoại ngữ 34

Hình 22 Biểu đồ hoạt động đăng nhập 35

Hình 23 Biểu đồ hoạt động thêm người dùng 35

Hình 24 Biểu đồ hoạt động sửa người dùng 36

Hình 25 Bản vẽ biểu đồ lớp chi tiết của hệ thống 37

Hình 26 Biểu đồ trình tự cho chức năng đăng nhập 38

Hình 27 Biểu đồ trình tự cho chức năng thêm người dùng 39

Hình 28 Biểu đồ trình tự cho chức năng sửa người dùng 40

Trang 7

Hình 29 Biểu đồ trình tự cho chức năng xóa người dùng 41

Hình 30 Cơ sở dữ liệu của bài toán 41

Hình 31 Giao diện chính của quản trị viên 42

Hình 32 Giao diện đăng nhập 42

Hình 33 Giao diện khi người dùng đăng nhập thành công 43

Hình 34 Giao diện khi người dùng sửa thông tin 43

Hình 35 Giao diện khi người dùng chọn vào quá trình đào tạo 44

Hình 36 Giao diện khi người dùng thêm quá trình đào tạo 44

Hình 37 Giao diện sửa quá trình đào tạo 45

Hình 38 Giao diện khi chọn quản lý đề tài nguyên cứu 45

Hình 39 Giao diện khi người dùng chọn thêm đề tài nguyên cứu 46

Hình 40 Giao diện khi người dùng chọn sửa đề tài nguyên cứu 46

Hình 41 Giao diện khi người dùng chọn quản lý cấp nguyên cứu 47

Hình 42 Giao diện khi người dùng thêm cấp nguyên cứu 47

Hình 43 Giao diện khi người dùng chọn sửa cấp nguyên cứu 48

Hình 44 Giao diện khi người dùng xóa cấp nguyên cứu 48

Trang 8

PHẦN MỞ ĐẦU

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

Công nghệ thông tin ngày càng phát triển đã tạo ra những ứng dụng tiện ích, dễ sử dụng, dễ quản lý ở trong đời sống, trong trường học, trong các công

ty, các doanh nghiệp

Hiện nay, việc quản lý cán bộ, giảng viên của khoa Toán - Lý - Tin còn thực hiện trên Excel nên việc quản lý còn gặp nhiều vấn đề bất cập

Với những yêu cầu và tính chất của công việc, việc tạo ra một hệ thống quản lý rất cần thiết, nhằm giảm áp lực của công việc cũng như giúp giảm thiểu thời gian làm việc xuống một mức độ ít nhất

Có thể thấy tiềm năng ứng dụng CNTT vào việc xây dựng một hệ thống quản lý là rất lớn Việc quản lý thông tin cán bộ, giảng viên hay tạo ra những báo cáo một cách nhanh và chính xác nhất có thể Với những lý do trên, tôi đã

đề xuất xây dựng “Hệ thống quản lý cán bộ, giảng viên khoa Toán - Lý - Tin Trường Đại học Tây Bắc”

2 Mục đích, nhiệm vụ nghiên cứu

- Tìm hiểu về Laravel và phát triển ứng dụng nền web bằng Laravel

3 Đối tượng nghiên cứu

- Laravel - một framework của PHP

- Bài toán quản lý thông tin cán bộ giảng viên khoa Toán - Lý - Tin

4 Phạm vi nghiên cứu

- Nghiên cứu Laravel framework

- Cài đặt chương trình ứng dụng thử nghiệm

5 Phương pháp nghiên cứu

- Nghiên cứu lý thuyết

Trang 9

- Chương 1: Tổng quan về thiết kế web

- Chương 2: Tổng quan về laravel

- Chương 3: Xây dựng hệ thống quản lý cán bộ, giảng viên khoa Toán - Lý

- Tin Trường Đại học Tây Bắc Phần 3: Kết luận và hướng nghiên cứu phát triển đề tài

Trang 10

CHƯƠNG 1: TỔNG QUAN VỀ THIẾT KẾ WEB 1.1 Lịch sử hình thành của thiết kế web

Mặc dù Internet có lịch sử phát triển chưa thực sự lâu dài nhưng hiện nay

nó có vai trò quan trọng trong lĩnh vực CNTT Những tiện ích mà Internet mang lại giúp con người ngày càng thuận tiện hơn trong công việc, học tập, kết nối và giải trí

Có thể nói rằng: Internet có vai trò to lớn như ngày nay một phần lớn là nhờ sự phát triển của công nghệ website Nhờ các hệ thống website, con người

có thể tìm kiếm, truyền tải, quảng bá, trao đổi thông tin một cách dễ dàng và thuận tiện Và hiện nay, công nghệ web phát triển mạnh mẽ không chỉ dừng lại ở việc phát triển các trang web thông thường, mà còn là phát triển các ứng dụng trên thiết bị di động nền web (web-based applications)

Sự bắt đầu của thiết kế web:

Năm 1989, khi làm việc tại CERN, Tim Berners-Lee đã đề xuất để tạo ra một dự án siêu văn bản toàn cầu mà sau này được gọi là World Wide Web Trong thời gian 1991-1993 World Wide Web đã ra đời Trang văn bản chỉ có thể được xem bằng cách sử dụng một trình duyệt line-chế độ đơn giản Năm 1993, Marc Andreessen và Eric Bina, tạo ra các trình duyệt Mosaic Vào thời điểm đó

có nhiều trình duyệt, tuy nhiên phần lớn trong số họ là dựa trên Unix và không

có sự tích hợp với các yếu tố thiết kế đồ họa như hình ảnh; âm thanh Các trình duyệt Mosaic đã phá vỡ mốc này W3C đã được thành lập trong tháng 10 năm

1994 để dẫn World Wide Web phát triển các giao thức phổ biến mà thúc đẩy sự phát triển của nó và đảm bảo khả năng tương tác của nó Điều này khuyến khích bất kỳ một công ty độc quyền về trình duyệt và ngôn ngữ lập trình có thể sẽ bị thay đổi tác động của World Wide Web một cách toàn thể W3C tiếp tục thiết lập các tiêu chuẩn mà hôm nay có thể thấy như HTML, CSS, JavaScript

Năm 1994, Andersen thành lập Communications Corp mà sau này được biết đến như Netscape Communications, trình duyệt Netscape 0.9 Netscape tạo

ra các thẻ HTML riêng của mình mà không quan tâm đến quá trình chuẩn mực

Trang 11

truyền thống Ví dụ, Netscape 1.1 bao gồm các thẻ cho việc thay đổi màu nền và định dạng văn bản với bảng trên các trang web

Trong suốt 1996-1999 các cuộc chiến trình duyệt bắt đầu, như Microsoft và Netscape đã đấu tranh cho sự thống trị bằng cách ra mắt nhiều cải tiến trong các phiên bản của mình Trong thời gian đó có rất nhiều công nghệ mới trong lĩnh vực này, đặc biệt là Cascading Style Sheets, JavaScript, và Dynamic HTML Trên toàn bộ, “cuộc chiến” trình duyệt đã dẫn đến nhiều sáng tạo tích cực và giúp thiết kế web phát triển với một tốc độ nhanh chóng

Sự phát triển của thiết kế website:

Năm 1996, Microsoft phát hành bản trình duyệt đầu tiên của mình, trong đó

đã hoàn thành với các tính năng và các thẻ riêng của mình Nó cũng là trình duyệt đầu tiên hỗ trợ phong cách trang, mà lúc đó được xem như là một kỹ thuật tối ưu Các đoạn mã HTML cho bảng ban đầu được dành cho việc hiển thị dữ liệu dạng bảng Tuy nhiên các nhà thiết kế nhanh chóng nhận ra tiềm năng của việc sử dụng bảng HTML cho các công việc phức tạp, bố trí nhiều cột đó mà không thể thực hiện Tại thời điểm này, thiết kế và thẩm mỹ tốt dường như được

ưu tiên hơn cấu trúc đánh dấu tốt, và ít chú ý đến ngữ nghĩa và cách tiếp cận Các trang web HTML được giới hạn trong các tùy chọn thiết kế của họ, thậm chí nhiều hơn như vậy với các phiên bản trước của HTML Để tạo ra các thiết kế phức tạp, nhiều nhà thiết kế web có sử dụng các cấu trúc bảng phức tạp CSS được giới thiệu vào tháng 12 năm 1996 bởi W3C để hỗ trợ trình bày và bố trí Điều này cho phép mã HTML đơn giản và ngữ nghĩa hơn, cải thiện khả năng tiếp cận web

Năm 1996, flash (ban đầu được biết đến như là FutureSplash) đã được phát triển Vào thời điểm đó, các công cụ phát triển nội dung Flash là tương đối đơn giản so với hiện nay, sử dụng bố trí cơ bản và các công cụ vẽ, ActionScript, và một thời gian sau nó cho phép các nhà thiết kế web vượt qua các nhược điểm của HTML, GIF và JavaScript Tuy nhiên, vì Flash yêu cầu một plug-in, nhiều nhà phát triển web tránh sử dụng nó vì sợ hạn chế thị phần của mình do thiếu khả năng tương thích Thay vào đó, các nhà thiết kế web dùng hình ảnh động gif

Trang 12

(nếu họ không từ bỏ sử dụng đồ họa chuyển động hoàn toàn) và JavaScript cho các widget Nhưng những lợi ích của Flash đã làm cho nó phổ biến trên thị trường để cuối cùng làm việc theo cách của mình cho đại đa số các trình duyệt,

và đủ mạnh để được sử dụng để phát triển toàn bộ trang

Kết thúc cuộc chiến trình duyệt đầu tiên:

Trong năm 1998 Netscape công bố mã Netscape Communicator dưới một giấy phép mã nguồn mở, cho phép hàng ngàn lập trình tham gia vào việc cải thiện các phần mềm Tuy nhiên, họ đã quyết định bắt đầu từ đầu, trong đó hướng dẫn sự phát triển của trình duyệt mã nguồn mở và ổn định nhanh chóng

mở rộng sang một nền tảng ứng dụng hoàn chỉnh Các dự án Web tiêu chuẩn đã được hình thành và phát huy tuân thủ trình duyệt với HTML và CSS tiêu chuẩn bằng cách tạo ra Acid1, Acid2 và Acid3 kiểm tra

Năm 2000 là một năm quan trọng đối với Microsoft Internet Explorer đã được phát hành cho Mac, điều này là quan trọng vì nó là trình duyệt đầu tiên hỗ trợ đầy đủ HTML 4.01 và CSS 1, nâng cao thanh về việc tuân thủ các tiêu chuẩn Nó cũng là trình duyệt đầu tiên hỗ trợ đầy đủ các định dạng PNG định dạng hình ảnh Trong thời gian này Netscape đã được bán cho AOL và điều này được xem như là mất mát chính thức của Netscape so với Microsoft trong cuộc chiến trình duyệt

Giai đoạn 1988 – nay:

Kể từ đầu thế kỷ 21 các trang web đã trở nên ngày càng phổ biến trong cuộc sống Khi điều này xảy ra kéo theo các công nghệ của web cũng phát triển Cũng đã có những thay đổi đáng kể trong cách mọi người sử dụng và truy cập website, và điều này đã thay đổi như thế nào trong các trang web được thiết kế

Trình duyệt hiện đại: Kể từ khi kết thúc cuộc chiến trình duyệt đã có nhiều

trình duyệt mới đưa vào thị trường Nhiều trong số này là mã nguồn mở có nghĩa là họ có xu hướng phát triển nhanh hơn và hỗ trợ nhiều hơn các tiêu chuẩn mới Những tùy chọn mới được nhiều người xem tốt hơn so với Microsoft Internet Explorer Các trình duyệt phổ biến có thể kể tới như: Google Chrome, Mozilla Firefox, Apple Safari, Opera…

Trang 13

Tiêu chuẩn mới: W3C đã phát hành tiêu chuẩn mới cho HTML (HTML5)

và CSS (CSS3), cũng như phiên bản JavaScript API (từng là một tiêu chuẩn) Trong những năm trở lại đây, HTML5, CSS3, JavaScript đặc biệt là jQuery đã được sử dụng rộng rãi, giải quyết nhiều bài toán về ứng dụng nền web: trò chơi, phần mềm quản lý, web services

1.2 Xu hướng phát triển của thiết kế web

1.2.1 Mobile-first

Là một quy trình thực hiện thiết kế đi từ giao diện cho mobile đầu tiên sau

đó mới tới những thiết bị khác như ipad, laptop, desktop… Các trang web thiết

kế thân thiện với thiết bị di động cũng dần trở thành một xu hướng tất yếu, một tiêu chuẩn web không thể thiếu ngày nay

1.2.2 Thiết kế website - Responsive Web Design

Thiết kế responsive là website tự động biết được kích thước màn hình của thiết bị khách truy cập là như thế nào để hiển thị cho phù hợp trên màn hình đó

Vì vậy, thiết kế web responsive cũng trở nên rất phổ biến trong những năm gần đây nhờ vào sự gia tăng của việc sử dụng Internet trên thiết bị di động Thiết kế responsive được sử dụng phổ biến và an toàn vì nó đại diện cho một cách tương đối đơn giản và giá rẻ cho các doanh nghiệp để xây dựng một trang web điện thoại di động thân thiện với đầy đủ chức năng Nhưng thiết kế web đáp ứng không đi kèm với một số vấn đề nếu không được thực hiện đúng cách, yếu tố hướng tới người dùng luôn được chú trọng nhiều nhất

Hình 1 Thiết kế phù hợp với kích thước màn hình của thiết bị

Trang 14

1.2.3 Sử dụng các framework của CSS và JavaScript

Các framework như Bootstrap, jQuery đã tồn tại trong nhiều năm và tiếp tục chứng minh sự hữu ích trên các dự án cả cá nhân và chuyên nghiệp Việc sử dụng các framework này giúp cho lập trình viên dễ dàng hơn trong việc tạo ra các website và cả những ứng dụng nền web

Hiện nay, các framework của JavaScript như AngularJS, NodeJS đang tiến một bước dài trong sự phát triển của website cũng như ứng dụng nền web Việc tạo ra các ứng dụng nền web theo đó cũng phát triển nhanh chóng và trở thành một trong những hướng mũi nhọn của công nghệ phần mềm hiện đại

- Một ngôn ngữ đánh dấu bao gồm một tập các thẻ đánh dấu nội dung

- Tài liệu HTML được đánh dấu bằng các thẻ HTML

- Mỗi thẻ HTML dùng để mô tả một nội dung nào đó trên trang web

- HTML do Tim Berner-Lee giới thiệu năm 1990 và hiện đang được World Wide Web Consortium (W3C) tiếp tục duy trì

1.3.2 Tập tin HTML là gì?

- Tập tin HTML là một tập tin text có chứa các thẻ HTML (tập tin có phần

mở rộng là html hoặc htm)

- Tập tin HTML còn được gọi là một trang web

- Nếu cú pháp có bị sai thì trình duyệt vẫn không báo lỗi, nó chỉ hiển thị không như ý muốn

1.3.3 Thẻ trong HTML

- Thẻ HTML là những từ khoá được định nghĩa trước nằm trong cặp dấu < >

<tên_thẻ>nội dung</tên_thẻ>

Trang 15

1.3.4 Cấu trúc của một tài liệu HTML

Hình ảnh dưới đây mô tả cấu trúc cơ bản của một tài liệu HTML (một trang web)

Hình 2 Cấu trúc cơ bản 1 tài liệu

Trang 16

1.4 Căn bản về CSS/CSS3

1.4.1 CSS là gì?

CSS (Cascading Style Sheets) là một ngôn ngữ dùng để định dạng cho các phần tử HTML (Ví dụ: chỉnh kích cỡ chữ, chỉnh font chữ, màu chữ, màu nền, hình nền, đường viền, ) dựa trên các cặp thuộc tính: giá trị thuộc tính

Với việc sử dụng CSS, ta có thể định dạng ra các phần tử HTML thật đặc biệt và chuyên nghiệp

1.4.2 Lịch sử CSS

CSS được phát triển bởi Håkon Wium Lie vào 10/10/1994 và được duy trì bởi một nhóm CSS Working Group của W3C Nhóm này duy trì và công bố các tài liệu mới nhất về CSS

- Lịch sử các phiên bản của CSS:

CSS1 (Cascading Style Sheets 1) được công bố bởi W3C vào 12/1996 Phiên bản này miêu tả ngôn ngữ CSS cũng như mô hình định dạng đơn giản đầu tiên cho tất cả các thẻ HTML

CSS2 được công bố vào 5/1998, được phát triển dựa trên CSS1 Phiên bản này bổ sung sự hỗ trợ tới một số thiết bị (như máy in, …), các thiết bị về âm thanh, các bảng

CSS3 được công bố vào 6/1999 Tại phiên bản này, CSS được phân chia thành các module nhỏ và từng module chịu trách nhiệm cho một tính năng cụ thể nào đó

1.4.3 Lợi thế của CSS

CSS tiết kiệm thời gian và công sức: Nếu đã học qua về HTML, sẽ thấy một điều rằng: HTML không chứa bất cứ một thẻ nào để định dạng một trang web HTML được tạo để miêu tả nội dung của một trang web, còn CSS được dùng để định dạng chúng

Bắt đầu từ HTML 3.2, các thẻ như <font> và các thuộc tính như color được thêm vào Việc thiết kế các trang web lớn, với thông tin về font và color trải dài qua nhiều trang đơn, thì việc xác định font và thêm thuộc tính color vào các

trang này tốn rất nhiều thời gian và công sức

Trang 17

Để xử lý vấn đề này, World Wide Web Consortium (W3C) đã tạo ra CSS

Và từ đó với CSS lập trình viên tiết kiệm khá nhiều thời gian và công sức Thay

vì phải thêm font và color cho từng trang web một, giờ đây họ chỉ cần tạo một tệp css ở ngoài và sau đó thêm vào từng trang web Khi đó có thể thay đổi giao

diện của cả một website lớn chỉ trong một thời gian rất ngắn bằng cách tạo các

thay đổi trong tệp css

Sử dụng CSS giúp trang web tải nhanh hơn: Sử dụng CSS, không cần phải viết từng thuộc tính cho từng thẻ HTML mỗi khi cần đến Chỉ cần viết một định

dạng (style) CSS trong tệp css và áp dụng cho tất cả các thẻ đó Ít code hơn tức

là sẽ giúp trang web tải nhanh hơn

Sử dụng CSS giúp dễ dàng bảo trì và nâng cấp trang web hơn

CSS có nhiều thuộc tính hơn HTML Do đó, sử dụng CSS giúp tạo các trang web đẹp hơn nhiều khi so sánh với việc sử dụng các thẻ và thuộc tính HTML thuần

Sử dụng CSS là phù hợp với chuẩn quốc tế Hiện tại rất nhiều thuộc tính của HTML đã trở thành cũ và nhiều trình duyệt không còn hỗ trợ chúng nữa Do

đó để tương thích với các trình duyệt trong tương lai, nên sử dụng CSS

1.5 Căn bản về JavaScript

1.5.1 JavaScript là gì?

JavaScript (JS) là một ngôn ngữ lập trình phía người dùng: mã được thực

thi bởi trình duyệt của người dùng, sau khi trang web gửi về từ server

JavaScript được sử dụng để tạo ra các trang web có tính tương tác:

- Chèn nội dung động vào trang web

- Đáp ứng lại các thao tác của người dùng

- Lấy thông tin từ máy tính người sử dụng

- Thực hiện tính toán trên máy tính người sử dụng

- Tạo các ứng dụng, chức năng tương tác cho trang web

JavaScript là ngôn ngữ lập trình phổ biến bậc nhất thế giới, và là một trong

ba ngôn ngữ (HTML, CSS, JavaScript) mà tất cả lập trình viên web nhất định phải học

Trang 18

JavaScript được nhúng vào trang web để kết hợp với HTML/CSS

1.5.2 Các lợi thế của JavaScript

Sự tương tác server ít hơn: Có thể kiểm tra đầu vào (input) của người sử dụng trước khi gửi trang tới server Điều này làm tiết kiệm lưu lượng tải ở

server, nghĩa là server hoạt động ít hơn

Phản hồi ngay lập tức tới khách truy cập: Họ không phải chờ cho một trang web tải lại để thấy xem nếu họ đã quên nhập cái gì đó

Khả năng tương tác tăng lên: Có thể tạo các giao diện mà phản ứng lại khi người sử dụng rê chuột qua chúng hoặc kích hoạt chúng thông qua bàn phím Giao diện phong phú hơn: có thể sử dụng JavaScript để bao gồm những mục như các thành phần Drag và Drop (DnD), các con trượt (Slider), cung cấp một Rich Interface (giao diện giàu tính năng) tới website khách truy cập

JavaScript không có bất kỳ khả năng đa luồng hoặc đa xử lý

Một lần nữa, JavaScript là một ngôn ngữ chương trình thông dịch, nhẹ mà cho phép xây dựng khả năng tương tác trong các trang HTML tĩnh

Kết luận

Qua chương 1, chúng tôi đã giới thiệu tổng quan về thiết kế web Chương 2 chúng tôi sẽ giới thiệu tổng quan về Laravel

Trang 19

CHƯƠNG 2: GIỚI THIỆU VÀ TỔNG QUAN VỀ LARAVEL

2.1 Giới thiệu về Laravel

Laravel là một PHP framework mã nguồn mở và miễn phí dùng để xây dựng web application, được phát triển bởi Taylor Otwell và được thiết kế dựa trên mô hình MVC (Model, View, Controller) toàn bộ source code được đặt trên github Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu – rõ ràng , một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau

để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng

Theo kết qủa khảo sát của các Developer vào tháng 12 năm 2013, thì Laravel Framework đứng top 1 một trong những framework phổ biến nhất, tiếp sau là Phalcon, Symfony2, CodeIgniter và các framework khác Tháng 8 năm

2014, Laravel Framework được xem như là một dự án PHP phổ biến nhất trên Github

2.2 Luồng hoạt động của Laravel

Ta có sơ đồ sau:

Hình 3 Biểu đồ luồng hoạt động của laravel

Tóm tắt lại sơ đồ trên:

Trang 20

Khi người dùng gửi một yêu cầu lên hệ thống, hệ thống sẽ gửi về cho Controller xử lý các yêu cầu của người dùng Trong quá trình làm việc đó, Controller sẽ phải thông qua lớp Model nếu muốn làm việc với Cơ sở dữ liệu (DataBase) Sau khi xử lý xong, Model sẽ đưa dữ liệu về cho Controller, Controller tiếp tục đưa sang View và View hiển thị lại cho người dùng kết quả cuối cùng

2.3 Lịch sử phát triển của Laravel

Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cung cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền Điều này vẫn chưa chắc chắn nhưng có thể Taylor vốn là một NET developer khi bắt đầu có nhu cầu làm việc với PHP khoảng vào những năm

2010 - 2011, đã chọn CodeIgniter khi đó đang là một ngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội Và Taylor nhanh chóng nhận ra những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuất sắc về design-pattern của mình, Taylor quyết định tự mình tạo ra một framework sao cho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhất bằng nhiều tính năng hỗ trợ như Eloquent ORM mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế nữa

Hình 4 Biểu đồ phát triển của một số framework từ 2004 đến nay

Bản Laravel beta đầu tiên được phát hành vào ngày 9/6/2011, tiếp đó là Laravel 1 được phát hành trong cùng tháng Laravel 1 bao gồm các tính năng

Trang 21

như xác thực, bản địa hóa, model, view, session, định tuyến và các cơ cấu khác, nhưng vẫn còn thiếu controller, điều này làm nó chưa thật sự là một MVC framework đúng nghĩa

Laravel 2 được phát hành vào tháng 9 năm 2011, mang đến nhiều cài tiến

từ tác giả và cộng đồng Tính năng đáng kể bao gồm hỗ trợ controller, điều này

đã biến Laravel 2 thành một MVC framework hoàn chỉnh, hỗ trợ Inversion of Control (IoC), hệ thống template Blade Bên cạnh đó, có một nhược điểm là hỗ trợ cho các gói của nhà phát triển bên thứ 3 bị gỡ bỏ

Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn tính năng mới bao gồm giao diện dòng lệnh (CLI) tên “Artisan”, hỗ trợ nhiều hơn cho hệ thống quản trị cơ sở dữ liệu, chức năng ánh xạ cơ sở dữ liệu Migration, hỗ trợ “bắt sự kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles” Lượng người dùng và sự phổ biến tăng trưởng mạnh kể từ phiên bản Laravel 3

Laravel 4, tên mã “Illuminate”, được phát hành vào tháng 5 năm 2013 Là

sự lột xác của Laravel framework, di chuyển và tái cấu trúc các gói hỗ trợ vào một tập được phân phối thông qua Composer, một chương trình quản lý gói thư viện phụ thuộc độc lập của PHP Bố trí mới như vậy giúp khả năng mở rộng của Laravel 4 tốt hơn nhiều so với các phiên bản trước Ra mắt lịch phát hành chính thức mỗi sáu tháng một phiên bản nâng cấp nhỏ các tính năng khác trong Laravel 4 bao gồm tạo và thêm dữ liệu mẫu (database seeding), hỗ trợ hàng đợi, các kiểu gửi mail, và hỗ trợ “xóa mềm” (soft-delete: record bị lọc khỏi các truy vấn từ Eloquent mà không thực sự xóa hẳn khỏi DB)

Laravel 5 được phát hành trong tháng 2 năm 2015, như một kết quả thay đổi đáng kể cho việc kết thúc vòng đời nâng cấp Laravel lên 4.3 Bên cạnh một loạt tính năng mới và các cải tiến như hiện tại, Laravel 5 cũng giới thiệu cấu trúc cây thư mục nội bộ cho phát triển ứng dụng mới Những tính năng mới của Laravel 5 bao gồm hộ trợ lập lịch định kỳ thực hiện nhiệm vụ thông qua một gói tên là “Scheduler”, một lớp trừu tượng gọi là “Flysystem” cho phép điều khiển việc lưu trữ từ xa đơn giản như lưu trữ trên máy local – dễ thấy nhất là mặc định

Trang 22

hỗ trợ dịch vụ Amazone S3, cải tiến quản lý assets thông qua “Elixir”, cũng như đơn giản hóa quản lý xác thực với các dịch vụ bên ngoài bằng gói “Socialite” Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên nhận được hỗ trợ dài hạng (LTS) với một kết hoạch fix bug lên tới 2 năm vào hỗ trợ vá lỗi bảo mật lên tới 3 năm Các bản phát hành LTS của Laravel được lên

kế hoạch theo mỗi 2 năm

2.4 Sơ lƣợc các tính năng cơ bản của Laravel

Bundles: Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các

module, với rất nhiều tính năng đi kèm

Composer: Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản

lý với tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong kho Packagist

Eloquent ORM (object relation mapping): ánh xạ các đối tượng và quan

hệ cơ sở dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổ sung các tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu Eloquent ORM trình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọn truy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn

Application logic: Là một phần của phát triển ứng dụng, được sử dụng bởi

bộ điều khiển controllers

Routes: Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết

(link) Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên kết thống nhất sẽ được tạo ra bởi laravel

Restful Controller: cung cấp các tùy chọn để tách các logic phía sau các

request HTTP POST, GET

Class auto loading: cung cấp việc tải tự động các class trong PHP, mà

không cần include các class vào Tùy thuộc vào yêu cầu các class cần thiết sẽ được nạp vào, hạn chế các class không cần thiết

View: chưa các mã html, hiển thị dữ liệu được chỉ định bởi controller

Trang 23

Migrations: cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở

dữ liệu (database cheme), làm cho web ứng dụng có khả năng tương tác phù hợp những thay đổi logic, các đoạn mã code của ứng dụng và những thay đổi cần thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứng dụng

Unit Testing: đóng một vai trò quan trọng trong Laravel, Unit testting chứa

rất nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuôn khổ nhất định Unit Testing có thể được chạy thông qua tiện ích command-line

Automatic pagination: Tính năng tự động phân trang được tích hợp

vào Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các phương pháp thông thường

2.5 Các thành phần cơ bản của Laravel

MiddleWare

Xem hình sau:

Hình 5 Hoạt động của middleware

Giả sử ta có một vị khách tên là Route đến và muốn đi vào Controller, thì

vị khách Route này sẽ phải checkin ở lễ tân MiddleWare Nếu hợp lệ thì cho Route đi tiếp, còn không thì không cho phép

Vậy có thể hiểu MiddleWare nó sẽ bảo vệ các Controller của chúng ta Service Providers

Trang 24

Service Providers nằm trong config/app.php, khi bạn vào app.php này, rồi

kéo xuống sẽ thấy Providers là một mảng

Nó là nơi để bạn đăng ký tất cả mọi thứ, sau đó Service Providers sẽ cho Laravel biết tất cả về package của bạn, và Laravel sẽ biết các dependencies (phụ thuộc, tin tưởng) nào cần bind và cần giải quyết (resolve)

Nói chung Service Providers nghĩa là đăng ký tất cả mọi thứ như nghe sự

kiện, trung gian và các tuyến đường….nó là trung tâm để bạn cấu hình khi mà tạo một ứng dụng, một package riêng cho mình

Request và Response

Request và Response là gì, hãy nhìn vào hình sau:

Hình 6 Cách hoạt động của request và response

Khi mà gửi dữ liệu thông qua các đường dẫn trên route, thì cách đó chỉ có

tác dụng với phương thức GET, còn nếu khi cần sử dụng POST, các bạn sẽ

không đưa được dữ liệu lên đường dẫn đó được Chính vì vậy mà Laravel tạo ra một cái gọi là Request, Requet này sẽ quản lý các dữ liệu được gửi lên Route và truyền dữ liệu đó sang bên Controller Dữ liệu Request có thể là một mảng, một đối tượng hoặc là một JSON

Trang 25

Sau đó Controller sẽ xử lý Request và tạo ra một lớp Response rồi trả Response đó về máy tính cho chúng ta Response đảm nhiệm việc chuyển đổi giữa các kiểu dữ liệu Request và gửi về cho người dùng

View trong Laravel (2 khái niệm Blade Template và Elixir)

Blade Template là gì? Blade Template là một Template Engine có tác

dụng làm sạch đi các đoạn code PHP nằm trong View để tách biệt Hoàn Toàn giữ người làm Front-End (cắt CSS) và người code PHP Blade Template là một engine khá mạnh mẽ nên được Laravel chọn và tích hợp vào sẵn Nên tất cả các

file trong View đều sẽ có phần mở rộng là blade.php

Elixir là gì? Thì trong laravel 5 có tích hợp GULP( tự động hóa trong js)

và Core của mình khiến cho việc thao tác với js, css dễ dàng hơn nhiều

Elixir xuất hiện là để cung cấp một cách làm mới sáng sủa hơn cùng

với fluent API(là một cách để cấu hình các lớp domain) Nhằm thực hiện các

công việc cơ bản của GULP một cách đơn giản cho ứng dụng laravel

Có thể nói Elixir là một khu vực hỗ trợ rất nhiều các trình dịch css, js và các công cụ test thông dụng Thay vì phải xây dựng css và js của riêng bạn để cho hệ thống, thì bạn có thể sử dụng Elixir và chạy một cách dễ dàng

Database trong laravel: Database-Relationship-Eloquent

ORM-Validation-Collections

Schema: lớp này cung cấp cho chúng ta các hàm để Tạo bảng, chỉnh sửa

bảng, thêm bảng, xóa bảng… trong laravel

Migrate và Seed: quản lý cơ sở dữ liệu trong laravel, backup hay reset lại

cơ sở dữ liệu hay là tạo một bộ cơ sở dữ liệu mẫu để chúng ta làm việc với database một cách dễ dàng hơn

Query Builder: là các câu lệnh truy vấn đến cơ sở dữ liệu trong laravel Eloquent –Model: là phần Model trong mô hình MVC ở trên đầu

Relationship: liên kết dữ liệu giữa các bảng trong laravel (một nhiều)

(nhiều nhiều)

Cụ thể hơn:

Trang 26

Về Migrate mình có một ví dụ dễ hiểu sau:

Hình 7 Ví dụ cách hoạt động migrate

Giả sử bạn là người lập trình viên trong hình trên, ngày thứ 2 trong tuần bạn tạo ra một bảng A, thứ 3 tạo bảng B, thứ 4 Sửa bảng A và thứ 5 xóa Bảng B Đến thứ 5 sau khi xóa bảng B thì hệ thông của bạn báo lỗi, bạn sẽ làm thế nào, khi này, Laravel sẽ cung cấp cho bạn Migration, lớp Migration này sẽ lưu lại các công việc mà bạn đã làm, từ đây, bạn sẽ có thể quay lại ngày thứ 3 để tiếp tục làm việc với bảng B và tìm hiểu tại sao khi xóa lại bị lỗi

Migrate nó sẽ lưu lại thứ tự công việc mà bạn làm ở trong bảng Migrations

trong database, rất thuận lợi cho chúng ta làm việc nhóm khi mà hôm nay người này tạo bảng, ngày mai người khác tạo bảng khác hay là sửa xóa bảng của bạn Các file Migrate sẽ được lưu ở Database=>Migrate

Seed là gì? Là bộ dữ liệu mẫu, giúp chúng ta thêm dữ liệu mẫu vào bảng

đó

Seed được lưu ở Database=>Seeds

Dữ liệu mẫu mà ta thêm vào có thể thêm được nhiều bằng cách truyền vào với dạng mảng như sau:

Trang 27

Hình 8 Cách thêm dữ liệu mẫu bằng seeds

Query Builder: là các lệnh truy vấn trong laravel, nó có tác dụng thay thế

cho các câu lệnh truy vấn thông thường bằng các phương thức trong lớp DB Nếu chúng ta muốn lấy toàn bộ dữ liệu trong một bảng có tên là users, thì

trong PHP thuần ta sẽ làm như sau: Select * from products

Còn Trong laravel thì khác, cũng có yêu cầu như trên, nhưng câu lệnh sẽ là: DB::table(„users)->get();

Hoặc nếu chúng ta dùng model mà thông qua cotroller để lấy dữ liệu thì ta chỉ cần dùng lệnh: User::all();

Eloquent ORM –Model

Model trong laravel có thể lưu ở bất kỳ đâu để nạp tự động tùy theo file composer.js nhưng thông thường mặc định tất cả model sẽ được lưu trong thư

mục app/

Eloquent ORM cung cấp cho chúng ta cách thức chuyển đổi cơ sở dữ liệu

quan hệ sang mô hình hướng đối tượng

Eloquent ORM làm việc trên cơ sở Active Record Mỗi Bảng cơ sở dữ

liệu của chúng ta sẽ được “ánh xạ” thành một file Model tương ứng, và chính Model này chúng ta sẽ sử dụng nó để tương tác với bảng

Ví dụ ta tạo model User bằng lệnh như hình dưới:

Trang 28

Hình 9 Cách tạo một model bằng lệnh

Sau khi chạy dòng lệnh trên ta thu được một file tên là User.php trong thư mục app, bên trong file User.php ta có thể viết các câu lệnh truy vấn, các hàm

hoặc các ràng buộc relationship cho bảng User trong database

Relationship: là các kiểu quan hệ ràng buộc trong laravel: cụ thể ta có một

danh sách như sau

- Một-Một: liên kết từ bảng cha tới bảng con: câu lệnh: ->hasOne();

- Một-Một: liên kết từ bảng con tới bảng cha: câu lệnh: ->belongsTo();

- Một-Nhiều: câu lệnh: ->hasMany();

- Nhiều-Nhiều: câu lệnh: ->belongsToMany();

- Liên kết qua trung gian: ->hasManyThrough();

Validation trong laravel

Nếu ai từng học qua php đã sử dùng validation để đảm bảo người dùng có thể nhập thông tin đúng và chính xác, ví dụ trong form đăng nhập, email không được để trống, hoặc Email nhập không đúng định dạng

Trong Laravel cung cấp sẵn cho chúng ta một hệ thống Validation, ta có thể sử dụng một cách dễ dàng mà không cần phải code dài dòng nhiều

Collections trong Laravel

Ngày đăng: 05/08/2018, 22:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w