LỜI CẢM ƠN
Sau một thời gian học tập, nghiên cứu và triển khai khóa luận tốt nghiệp:
“Xây dựng phần mềm quản lý học sinh mầm non bán trú”, đến nay tôi đã
hoàn thành khóa luận tốt nghiệp của mình.
Tôi xin bày tỏ tấm lòng biết ơn sâu sắc nhất tới ThS. Phan Trung Kiên đã
trực tiếp hướng dẫn, chỉ bảo tận tình trong suốt quá trình tôi thực hiện khóa
luận tốt nghiệp này.
Đồng thời tôi 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 để tôi có cơ hội
nghiên cứu, học tập và hoàn thành khóa luận tốt nghiệp này.
Do hạn chế về trình độ chuyên môn và thời gian thực hiện nên đề tài 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ô để tôi có
thể hoàn thành tốt nhất đề tài nghiên cứu này.
Xin chân thành cảm ơn!
Sơn laLa, tháng 5 năm 2018
Sinh viên
Đỗ Hồng Nhung
MỤC LỤC
MỞ ĐẦU...............................................................................................................1
1. Lý do chọn đề tài...............................................................................................1
2. Mục đích 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. Bố cục đề tài......................................................................................................2
NỘI DUNG...........................................................................................................3
CHƯƠNG I: TỔNG QUAN VỀ LARAVEL FRAMEWORK............................3
1.1. Giới thiệu về Laravel Framework..................................................................3
1.1.1. Khái niệm....................................................................................................3
1.1.2. Lịch sử phát triển của Laravel.....................................................................4
1.1.3. Ưu điểm của Laravel...................................................................................6
1.1.4. Cài đặt Laravel với Laragon........................................................................7
1.1.5. Cài đặt Laragon...........................................................................................8
1.1.5.1 Thiết lập ứng dụng Laravel.......................................................................9
1.1.5.2. Các công cụ được tích hợp trong Laragon............................................11
1.1.6. Composer...................................................................................................14
1.1.6.1. Khái niệm Composer..............................................................................14
1.1.6.2. Yêu cầu hệ thống với Composer............................................................14
1.1.6.3. Cài đặt Composer trên Windows............................................................15
1.1.7. Cấu trúc thư mục Laravel Framework......................................................16
1.2. Các thành phần cơ bản của Laravel Framework..........................................17
1.2.1. Route.........................................................................................................17
1.2.1.1. Các loại route trong Laravel...................................................................17
1.2.1.2. Sử dụng route trong Laravel...................................................................17
1.2.2. View...........................................................................................................19
1.2.2.1. Tạo View trong Laravel..........................................................................19
1.2.2.2. Truyền dữ liệu cho View........................................................................19
1.2.2.3. Chia sẻ dữ liệu cho tất cả các View........................................................20
1.2.3. Controller...................................................................................................20
1.2.3.1. Tạo Controller trong Laravel..................................................................20
1.2.3.2. Sử dụng các action trong Controllers.....................................................20
1.2.3.3. Sử dụng filter trong Controllers.............................................................21
1.2.4. Laravel Middleware..................................................................................21
1.2.4.1. Đăng ký Laravel Middleware với hệ thống:...........................................22
1.3. Thao tác với cơ sở dữ liệu............................................................................22
1.3.1. Cấu hình kết nối cơ sở dữ liệu trong Laravel Framework.........................22
1.3.2. Thực hiện chạy cây lệnh truy vấn..............................................................23
1.3.3. Database Transactions...............................................................................23
1.3.4. Accessing Connections..............................................................................23
1.4. Laravel Eloquent ORM................................................................................24
1.4.1. Khái niệm..................................................................................................24
1.4.2. Cách sử dụng.............................................................................................24
1.4.3. Một số query đơn giản...............................................................................24
CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ HỌC
SINH MẦM NON BÁN TRÚ.............................................................................26
2.1. Mô tả hệ thống..............................................................................................26
2.1.1. Các quy trình nghiệp vụ............................................................................26
2.1.2. Nhiệm vụ của hệ thống..............................................................................26
2.2. Liệt kê và đặc tả các ca sử dụng...................................................................26
2.2.1. Use case.....................................................................................................26
2.2.2. Đặc tả ca sử dụng......................................................................................27
2.2.2.1. Đăng nhập...............................................................................................27
2.2.2.2. Quản lý thông tin....................................................................................27
2.2.2.3. Thêm học sinh........................................................................................28
2.2.2.4. Thêm giáo viên.......................................................................................28
2.2.2.5. Thêm món ăn..........................................................................................29
2.2.2.6. Thêm thực đơn........................................................................................29
2.2.2.7. Thêm nhóm lớp......................................................................................30
2.3. Biểu đồ CA...................................................................................................30
2.4. Biểu đồ hoạt động.........................................................................................31
2.4.1. Đăng nhập..................................................................................................31
2.4.2. Quản lý thông tin.......................................................................................32
2.5. Biểu đồ trình tự.............................................................................................33
2.5.1. Đăng nhập..................................................................................................33
2.5.2. Thêm mới (học sinh, giáo viên, món ăn, thực đơn)..................................33
2.5.3. Sửa thông tin (học sinh, giáo viên, món ăn, thực đơn)..............................34
2.5.4. Hiển thị danh sách (học sinh, giáo viên, món ăn, thực đơn).....................34
2.6. Biểu đồ lớp chi tiết.......................................................................................35
2.7. Thiết kế cơ sở dữ liệu...................................................................................35
2.7.1. Người quản trị...........................................................................................35
2.7.2. Giáo Viên...................................................................................................36
2.7.3. Học sinh.....................................................................................................36
2.7.4. Món ăn.......................................................................................................37
2.7.5. Nhóm.........................................................................................................37
2.7.6. Suất ăn.......................................................................................................37
2.7.7. Thực đơn....................................................................................................38
CHƯƠNG 3: PHẦN MỀM QUẢN LÝ HỌC SINH MẦN NON BÁN TRÚ....39
3.1. Thiết kế giao diện.........................................................................................39
3.1.1. Trang đăng nhập........................................................................................39
3.1.2. Khung hiển thị của website.......................................................................39
3.1.3. Quản lý sinh...............................................................................................40
3.1.3.1. Danh sách học sinh.................................................................................40
3.1.3.2. Thêm mới học sinh.................................................................................40
3.1.4. Quản lý giáo viên......................................................................................40
3.1.4.1 Danh sách giáo viên................................................................................40
3.1.4.2. Cập nhật giáo viên..................................................................................41
3.1.5. Quản lý món ăn.........................................................................................41
3.1.5.1. Danh sách món ăn..................................................................................41
3.1.5.2. Thêm mới món ăn..................................................................................41
3.1.6. Quản lý thực đơn.......................................................................................42
3.1.6.1. Danh sách thực đơn................................................................................42
3.1.6.2. Thêm mới thực đơn................................................................................42
3.1.7. Quản lý nhóm lớp......................................................................................42
3.1.7.1. Danh sách nhóm lớp...............................................................................42
3.1.7.2. Thêm mới nhóm lớp...............................................................................43
3.1.8. Quản trị viên..............................................................................................43
3.1.8.1. Danh sách quản trị viên..........................................................................43
3.1.8.2. Thêm mới quản trị viên..........................................................................44
3.2. Cài đặt một số chức năng.............................................................................44
3.2.1. Đăng nhập..................................................................................................44
3.2.2. Trang chủ...................................................................................................45
3.2.3. Danh sách học sinh....................................................................................45
3.2.4. Thêm mới học sinh....................................................................................46
3.2.5. Danh sách giáo viên..................................................................................46
3.2.6. Quản lý món ăn.........................................................................................47
3.2.7. Quản lý thực đơn.......................................................................................47
3.2.8. Quản lý nhóm lớp......................................................................................48
3.2.9. Quản trị viên..............................................................................................48
3.2.10. Thêm mới quản trị viên...........................................................................49
KẾT LUẬN.........................................................................................................50
TÀI LIỆU THAM KHẢO.....................................................................................1
DANH MỤC HÌNH
Hình 1: Tỉ lệ người dùng Laravel so với những Framework khác.......................4
Hình 2: Giao diện khi khởi động cài đặt..............................................................8
Hình 3: Giao diện lựa chọn khi khởi động...........................................................9
Hình 4: Tạo dự án Laravel bằng giao diện...........................................................9
Hình 5: Giao diện thông báo những dòng lệnh chạy..........................................10
Hình 6: Giao diện thông báo thành công và tên miền ảo...................................10
Hình 7: Thiết lập thành công..............................................................................11
Hình 8: Thiết lập đường dẫn đến cmder trên Sublime Text...............................12
Hình 9: Giao diện của HeidiSQL.......................................................................13
Hình 10: Trang quản trị tài khoản trên ngrok.....................................................13
Hình 11: Địa chỉ demo của dự án.......................................................................14
Hình 12: Màn hình dòng lệnh trên composer.....................................................15
Hình 13: Mô hình MVC.....................................................................................19
Hình 14: Cơ chế hoạt động của Middleware......................................................21
Hình 15: Kỹ thuật OMR.....................................................................................24
Hình 16: Biểu đồ Use Case của quản trị viên....................................................30
Hình 17: Phân giã Use Case quản lý thông tin...................................................31
Hình 18: Biểu đồ hoạt động đăng nhập..............................................................31
Hình 19: Biểu đồ hoạt động quản lý giáo viên...................................................32
Hình 20: Biểu đồ trình tự đăng nhập..................................................................33
Hình 21: Biểu đồ trình tự thêm mới...................................................................33
Hình 22: Biểu đồ trình tự sửa thông tin..............................................................34
Hình 23: Biểu đồ trình tự hiển thị danh sách.....................................................34
Hình 24: Biểu đồ lớp chi tiết..............................................................................35
Hình 25: Đăng nhập vào hệ thống......................................................................39
Hình 26: Khung hiển thị của website.................................................................39
Hình 27: Trang danh sách học sinh....................................................................40
Hình 28: Trang thêm mới học sinh.....................................................................40
Hình 29: Trang danh sách giáo viên...................................................................40
Hình 30: Trang Cập nhật giáo viên....................................................................41
Hình 31: Trang danh sách món ăn......................................................................41
Hình 32: Trang thêm mới món ăn......................................................................41
Hình 33: Trang danh sách thực đơn...................................................................42
Hình 34: Trang thêm mới thực đơn....................................................................42
Hình 35: Trang danh sách nhóm lớp..................................................................42
Hình 36: Trang thêm mới nhóm lớp...................................................................43
Hình 37:
Hình 38:
Hình 39:
Hình 40:
Hình 41:
Hình 42:
Hình 43:
Hình 44:
Hình 45:
Hình 46:
Hình 47:
Hình 48:
Trang danh sách quản trị viên.............................................................43
Trang thêm mới quản trị viên..............................................................44
Giao diện đăng nhập............................................................................44
Giao diện trang chủ.............................................................................45
Giao diện danh sách học sinh..............................................................45
Giao diện thêm mới học sinh..............................................................46
Giao diện danh sách giáo viên............................................................46
Giao diện danh sách món ăn...............................................................47
Giao diện danh sách thực đơn.............................................................47
Giao diện danh sách nhóm lớp............................................................48
Danh sách quản trị viên.......................................................................48
Giao diện thêm mới quản trị viên........................................................49
DANH MỤC BẢNG BIỂU
Bảng 1: Bảng người quản trị...............................................................................35
Bảng 2: Bảng giáo viên.......................................................................................36
Bảng 3: Bảng học sinh........................................................................................36
Bảng 4: Bảng món ăn.........................................................................................37
Bảng 5: Bảng nhóm lớp......................................................................................37
Bảng 6: Bảng suất ăn..........................................................................................37
Bảng 7: Bảng thực đơn.......................................................................................38
DANH MỤC CHỮ VIẾT TẮT
SSH
CSDL
ORM
CSS
VPN
HTML
LTS
DB
CLI
IoC
MVC
ORM
PHP
Secure Shell
Cơ sở dữ liệu
Object Relational Mapping
Cascading Style Sheets
Virtual Private Network
HyperText Markup Language
Long Term Support
Database
command line interface
Inversion of Control
Model – View – Controller
Object Relational Mapping
Hypertext Preprocessor
MỞ ĐẦU
1. Lý do chọn đề tài
Trong thời kì công nghiệp hóa – hiện đại hóa ngày nay, với sự phát triển
của nền kinh tế tri thức, đặc biệt là sự phát triển mạnh mẽ của Internet mà qua
đó mọi người có thể dễ dàng tìm kiếm, theo dõi, khai thác và trao đổi thông tin
một cách nhanh nhất để phục vụ nhu cầu học tập và làm việc của bản thân.
Để đáp ứng được nhu cầu thiết yếu của xu hướng phát triển ngành công
nghệ thông tin hiện nay, cũng như đáp ứng nhu cầu tìm kiếm thông tin, quản lý
thông tin và tra cứu thông tin của người dùng, khóa luận đã tập trung nghiên
cứu, tìm hiểu về Frameword Laravel
Chính vì thế tôi đã chọn và thực hiện đề tài “Xây dựng phần mềm quản lý
học sinh mầm non bán trú” phát triển ứng dụng web bằng Laravel.
2. Mục đích nghiên cứu
- Nghiên cứu học tập về framword framework Laravel.
- Nghiên cứu và phát triển ứng dụng “Phần mềm quản lý học sinh mầm non
bán trú”.
3. Đối tượng nghiên cứu
- Framword Framework Laravel và công cụ Laragon.
- Hệ thống quản lý học mầm non bán trú trường mầm non (trường mầm
non Hoa Ban Tông Lệnh 2).
4. Phạm vi nghiên cứu
- Hệ thống quản lý học mầm non bán trú trường mầm non (trường mầm
non Hoa Ban Tông Lệnh 2).
5. Phương pháp nghiên cứu
- Tổng hợp tài liệu.
- Nghiên cứu tài liệu.
- Khảo sát, phân tích thực tế.
- Thiết kế, cài đặt kỹ thuật.
1
6. Bố cục đề tài
Đề tài gồm:
Mở đầu.
Nội dung
- Chương 1.Tổng quan về cơ sở lý thuyết.
- Chương 2. Phân tích và thiết kế hệ thống quản lý học sinh mầm non bán
trú.
- Chương 3. Cài đặt và thử nghiệm ứng dụng.
Kết luận.
Tài liệu tham khảo.
2
NỘI DUNG
CHƯƠNG I: TỔNG QUAN VỀ LARAVEL FRAMEWORKD
1.1. Giới thiệu về Laravel FramwordFramework.
1.1.1. Khái niệm
Laravel là một PHP framework mã nguồn mở và miễn phí, được phát triển
bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo
kiếm trúc model-view-controller (MVC). 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.
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình
chọn PHP framework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP
framework phổ biến nhất năm 2015, theo sau lần lượt là Symfony2,
Nette, CodeIgniter, Yii2 vào một số framework khác. Trước đó, Tháng 8 năm
2014, Laravel đã trở thành project PHP phổ biến nhất và được theo dõitải nhiều
nhất trên Github.
Mặc dù Laravel là một framework PHP tương đối mới (nó được phát hành
vào năm 2011), theo khảo sát trực tuyến gần đây của Sitepoint thì nó là
framework phổ biến nhất mà các nhà phát triển hay sử dụng. Laravel có một hệ
sinh thái rất lớn với một nền tảng giúp triển khai ứng dụng của bạn một cách
nhanh chóng, trang web chính thức của nó cung cấp nhiều hướng dẫn bằng
video gọi là Laracasts.
Laravel có nhiều tính năng giúp cho việc phát triển ứng dụng nhanh chóng
nhất có thể. Laravel sở hữu một light - weight templating engine có tên là
“Blade”, cú pháp mới hỗ trợ cho các tác vụ thường xuyên cần phải làm trong
ứng dụng, chẳng hạn như authentication, sessions, queueing, caching
và RESTful routing. Laravel cũng bao gồm một môi trường phát triển cục bộ gọi
là Homestead – đây thực chất là một Vagrant box được đóng gói.
3
Hình 1: Tỉ lệ người dùng Laravel so với những Framword Framework khác
1.1.2. 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. 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.
Bản Laravel beta đầu tiên được phát hành vào ngày 9/6/2011, tiếp đó
là Laravel 1 phát hành trong cùng tháng. Laravel 1 bao gồm các tính năng 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
4
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
thực sự 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ần
này thực sự 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
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
5
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.
1.1.3. Ưu điểm của Laravel
Laravel có một hệ thống có kiến trúc thống nhất, khoa học và cực đơn giản
giúp những người mới tiếp cận framework PHP có thể nắm bắt được ngay. Các
framework khác thật sự khá là khó để bắt đầu, đặc biệt là Zend, Yii. Tuy rất đơn
giản nhưng Laravel hoàn toàn có thể xây dựng những hệ thống ứng dụng web
cực phức tạp, với hiệu năng cao.
Các tài nguyên liên quan đến Laravel rất đa dạng, dễ sử dụng, kể đến có tài
liệu chính thức của Laravel được chính Taylor Otwell biên soạn, tác giả của
framework này muốn đưa việc lập trình lên một tầm cao mới đó là khám phá và
trải nghiệm, ngoài ra cộng đồng Laravel rất lớn trên Laracast, bạn có tìm được
câu trả lời cho bất kỳ tình huống nào bạn gặp phải trong Laravel hoặc tiếp cận
rất nhiều các video hướng dẫn cụ thể.
Trực quan, đó là những gì mọi người nói về viết mã trong Laravel, giúp
chúng ta tập trung vào các nhiệm vụ chính và các đoạn mã viết trong Laravel
được rõ ràng và rất dễ dàng trong bảo trì mã nguồn.
Tích hợp công cụ dòng lệnh Artisan, giúp các tác vụ trong phát triển ứng
dụng thật đơn giản. Những người mới tiếp cận với Laravel sẽ rất ít để ý đến
Artisan vì có một suy nghĩ là tại sao viết code lại liên quan đến một công cụ
dòng lệnh? Artisan là một phụ tá đắc lực trong quá trình phát triển ứng dụng,
giúp các công việc như tối ưu hóa ứng dụng, migrate dữ liệu, tạo các template,
gọi các ứng dụng khác trong xử lý song song với hàng đợi… được thực hiện đơn
giản. Có lẽ do Taylor Otwell đã quen với Microsoft Visual Studio .NET khi lập
trình .NET nên cũng mong muốn có những công cụ tốt cho những lập trình viên
PHP.
Bộ máy blade template thực sự rất hay, nó giúp cho làm việc giữa PHP và
HTML thật đơn giản, sáng sủa và tách biệt giữa mã hiển thị và mã logic nghiệp
vụ, cái mà trước đó chỉ có thể biết đến ở .NET hoặc Java.
6
Laravel hỗ trợ việc cài đặt các gói thư viện và bản thân nó sử dụng rất
nhiều các gói thư viện khác để tạo ra các tính năng tuyệt vời, ví dụ: nếu bạn làm
việc với Laravel Mix bạn sẽ nhận thấy Laravel sử dụng gói thư viện Webpack
kết hợp với npm, yarn… giúp bạn tự động hóa, giảm rất nhiều các tác vụ thủ
công trong quá trình build ứng dụng và triển khai sản phẩm.
Luôn đổi mới, tích cực và sáng tạo đó là những mỹ từ dành cho Laravel
cũng như người phát triển chính Taylor Otwell. Nếu bạn là người theo dõi
Laravel trong thời gian dài bạn sẽ thấy Laravel luôn thay đổi trong các phiên
bản, tìm kiếm những tính năng hay, những gói thư viện tốt nhất để tích hợp vào.
Nếu bạn biết đến Vue.js, Lodash, Webpack, Carbon… bạn sẽ hiểu tại sao
Laravel ngày càng củng cố vững chắc hơn vị trí số một của mình, do không
những nội tại Laravel là hệ thống cực khoa học, đơn giản và cực hay mà hệ sinh
thái xung quanh Laravel cũng toàn các sản phẩm số một trong lĩnh vực ngách
của nó.
1.1.4. Cài đặt Laravel với Laragon
Khái niệm Laragon
Laragon là một gói phần mềm tổng hợp các công cụ cần thiết do đó bạn
chỉ cần cài đặt một ứng dụng với thời gian cực nhanh là đã có ngay một môi
trường phát triển Laravel. Laragon hoàn toàn độc lập với hệ điều hành, do đó
bạn có thể copy sao chép thư mục sau cài đặt đi bất cứ đâu để chạy, thậm chí có
thể đồng bộ lên clound.
Lý do chọn Laragon
Chúng ta sẽ cùng nhau phân tích xem tại sao không nên cài đặt môi trường
Laravel theo cách truyền thống? Một môi trường làm việc với Laravel cần một
số các công cụ cần thiết như sau:
Webserver, database, PHP: 3 mục này cách cài đặt nào cũng đáp ứng
được.
Composer, Node.js, npm, yarn: Bộ các công cụ này để quản lý các gói thư
viện phụ thuộc trong dự án, đặc biệt khi làm việc với các framework PHP việc
tận dụng các thư viện ngoài là cần thiết, bạn đã tận dung dụng được tri thức của
7
hàng triệu lập trình viên PHP trên toàn cầu.
Công cụ dòng lệnh (command line), cái nàylà công cụ rất cần thiết vì làm
việc với Laravel chúng ta sử dụng các câu lệnh artisan giúp tiết kiệm rất nhiều
thời gian. Nếu bạn đã sử dụng Windows Command Prompt hẳn có lúc rất ức chế
do không đánh được tiếng Việt có dấu, copy paste cũng rất khó khăn, hiển thị
chỉ trong một kích cỡ cửa sổ. Tôi chuyển qua ConEmu (Console Emulation)
thấy cũng rất ok. Ngoài ra chúng ta cũng thường kết nối SSH đến các máy chủ
để làm việc thông qua các công cụ dòng lệnh này.
Git một công cụ cũng không thể thiếu trong quản lý phiên bản mã nguồn.
Bạn thấy đấy, có khá nhiều thứ cần thiết để tạo ra một môi trường phát triển
Laravel, với cách cài đặt truyền thống chúng ta sẽ phải cài rất nhiều thứ và
đương nhiên cũng mất nhiều thời gian. Laragon là một gói phần mềm tổng
hợp các công cụ cần thiết do đó bạn chỉ cần cài đặt một ứng dụng với thời
gian cực nhanh là đã có ngay một môi trường phát triển Laravel. Một vấn đề
nữa là Laragon hoàn toàn độc lập với hệ điều hành, do đó bạn có thể copy
thư mục sau cài đặt đi bất cứ đâu để chạy, thậm chí có thể đồng bộ lên
clound. Theo đánh giá cá nhân, tôi thấy sử dụng Laragon là tốt nhất do cài
đặt cực nhanh và chiếm ít dung lượng.
1.1.5. Cài đặt Laragon
Phiên bản hiện tại là Laragon 3.2, bạn thực hiện tải file, chọn phiên bản phù
hợp với máy tính, cài đặt và kích đúp để cài đặt. link Link tải về:
/>
8
Hình 2: Giao diện khi khởi động cài đặt
Laragon có thêm một số lựa chọn như khởi động cùng hệ thống, tự động
thiết lập host ảo (trước đây phải thiết lập thông qua file hosts và httpdvhosts.conf).
9
Hình 3: Giao diện lựa chọn khi khởi động
Cài đặt Laragon là rất nhanh, chỉ khoảng 3-5 phút.
1.1.5.1 Thiết lập ứng dụng Laravel đầu tiên
Laragon hỗ trợ tạo dự án Laravel bằng giao diện, bạn click chuột vào Menu
chọn đến Quick create và tìm đến mục Laravel.
Hình 4: Tạo dự án Laravel bằng giao diện
10
Một cửa sổ yêu cầu nhập tên dự án, ví dụ ở đây nhập dự án là
allaravel.com, khi click Ok, màn hình dòng lênh xuất hiện, chạy các kịch bản cài
đặt dự án bao gồm:
Tạo database với tên chính là tên dự án.
Tải khung dự án Laravel với phiên bản mới nhất.
Tự động tạo host ảo, ví dụ dự án ở đây là allaravel.com thì sẽ tự động tạo
ra tên miền ảo .
Hình 5: Giao diện thông báo những dòng lệnh chạy
Khi kết thúc thông báo tên miền ảo được tạo ra
Hình 6: Giao diện thông báo thành công và tên miền ảo
11
Mở trình duyệt và chạy thử
Hình 7: Thiết lập thành công
Nếu bạn không muốn sử dụng giao diện để tạo mới ứng dụng Laravel, bạn
vẫn có thể sử dụng câu lệnh composer để tạo mới dự án:
composer create-project laravel/laravel laravel-test
1.1.5.2. Các công cụ được tích hợp trong Laragon
Notepad++:
Notepad++ là một trình soạn thảo rất nhẹ và nhanh giúp viết code nhanh
chóng, tuy nhiên còn nhiều vấn đề nếu sử dụng Notepad++ để lập trình Laravel
như việc highlight code, ví dụ với Laravel Blade, Vue.js template… Khó để so
sánh Notepad++ với Sublime Text hoặc chuyên nghiệp hơn như PHP Storm.
Laragon đã tích hợp sẵn Notepad++ do đó nếu bạn dùng trình soạn thảo này, bạn
có thể truy cập ứng dụng qua menu Tools -> Notepad++.
Cmder:
Laragon tích hợp cmder một công cụ dòng lệnh tuyệt vời, nó được phát
triển từ ConEmu và Clink do đó ngoài thừa hưởng những tính năng của
ConEmu về giao diện thì nó còn cho phép chỉnh sửa các dòng lệnh giống như
Bash trên Unix, Linux. Cmder giúp bạn dễ dàng copy (Ctrl+C) và paste
12
(Ctrl+V) dễ dàng hơn nhiều công cụ dòng lệnh mặc định của Windows. Nó cũng
tích hợp sẵn với công cụ Git để quản lý phiên bản mã nguồn. Cmder cho phép
bạn phân chia ra nhiều tab hoặc nhiều khung trên một cửa sổ với các thông tin
được highlight rất dễ nhìn. Để chạy được cmder bạn bấm vào nút Terminal trên
Laragon.
Việc sử dụng cmder là rất nhiều khi phát triển Laravel, nếu bạn sử dụng
Sublime Text, bạn nên thiết lập ứng dụng dòng lệnh mặc định cho Sublime Text
như vậy, tại bất kỳ đâu trong dự án, chỉ cần một phím tắt bạn đã có màn hình
cmder với thư mục hiện hành là thư mục gốc của dự án. Các bước thiết lập như
sau:
Cài đặt package Terminal, bạn vào theo đường dẫn Preferences->Package
Control->Install Package và tìm package có tên Teminal, sau khi cài đặt xong
trong thư mục Preferences->Package Settings sẽ có thêm một mục Terminal,
bạn click vào Settings – Default để thiết lập đường dẫn đến cmder.
Hình 8: Thiết lập đường dẫn đến cmder trên Sublime Text
Giờ bạn có thể sử dụng tổ hợp phím Ctrl + Shift + T để mở cmder khi đang
code một class nào đó.
HeidiSQL:
HeidiSQL là một công cụ quản lý cơ sở dữ liệu rất thuận tiện, Laragon đã
tích hợp sẵn công cụ này, bạn có thể truy nhập vào công cụ này khi bấm vào nút
Database hoặc Menu->MySQL->HeidiSQL.
13
Hình 9: Giao diện của HeidiSQL
Ngrok:
Ngrok là gì? Bạn có thể tưởng tượng một tình huống như thế này, bạn vừa
phát triển xong ở máy tính và muốn show cho khách hàng xem thử, bình thường
bạn cần phải upload code lên một server nào đấy, sau đó cấu hình và chuyển cho
khách hàng đường dẫn đến trang demo. Như vậy khá là mất công, hơn nữa bạn
cũng cần phải có sẵn một server nào đó trên Internet. Ngrok giúp bạn xử lý vấn
đề này một cách đơn giản thông qua dịch vụ VPN (secure tunnel). Laragon cũng
tích hợp sẵn ngrok và các công việc còn lại bạn cần làm như sau:
Tạo tài khoản trên ngrok.com, sau khi tạo xong website sẽ chuyển hướng
vào trang quản trị tài khoản như hình dưới.
Hình 10: Trang quản trị tài khoản trên ngrok
14
Mở cmder trên Laragon, tìm dự án cần làm lên và copy paste lệnh ngrok
authtoken xxx để cài đặt mã xác thực. Sau đó thực hiện lệnh ngrok http 80.
Hình 11: Địa chỉ demo của dự án
Như vậy là xong, bạn có thể cung cấp cho khách hàng địa chỉ trong ô màu
đỏ, khách hàng có thể truy cập từ bất kỳ đâu trên Internet đến localhost trên máy
tính của bạn.
1.1.6. Composer
1.1.6.1. Khái niệm Composer
Composer là một công cụ quản lý thư viện PHP cho các dự án, một cách
chính xác hơn Composer quản lý sự phụ thuộc các tài nguyên trong dự án
(dependency management), nó cho phép khai báo các thư viện mà dự án của bạn
sử dụng và nó sẽ quản lý các thư viện này giúp bạn. Việc quản lý này bao gồm:
cài đặt các thư viện yêu cầu tự động, cập nhật các thư viện khi có phiên bản
mới…
Composer sẽ:
Khai báo các thư viện mà dự án sử dụng
Tìm các phiên bản của package có thể cài đặt và cần thiết cho dự án, sau
đó cài đặt chúng vào dự án (tức là tải chúng về dự án).
1.1.6.2. Yêu cầu hệ thống với Composer
Composer yêu cầu hệ thống phải cài đặt PHP với phiên bản từ 5.3.2 trở lên,
sẽ có một vài các thiết lập thông số PHP và một số các cờ trong biên dịch, các
cảnh báo này sẽ được hiển thị khi cài đặt composer.
Composer là một công cụ đa nền tảng do đó nó có thể chạy tốt trên các hệ
15
điều hành hiện nay như Windows, Linux, OSX…
1.1.6.3. Cài đặt Composer trên Windows
Sử dụng bộ cài
Đây là cách đơn giản nhất, bạn tải về file Composer-Setup.exe theo đường
dẫn sau: bạn tìm tải về bản composer mới
nhất và tự động thiết lập các biến môi trường PATH để bạn có thể gọi lệnh
composer ở bất kỳ đâu.
Hình 12: Màn hình dòng lệnh trên composer
16