Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
1,19 MB
Nội dung
TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN MÔN HỌC HỌC KỲ I, NĂM HỌC 2014 – 2015 TÌM HIỂU VỀ FRAMEWORK LARAVEL 4.X GIÁO VIÊN HƯỚNG DẪN NGUYỄN NGỌC ĐAN THANH SINH VIÊN THỰC HIỆN BÙI VĂN TÍNH MSSV: 110112002 LỚP: DA12TT Trà Vinh, ngày 10 tháng năm 2015 TRƯỜNG ĐẠI HỌC TRÀ VINH KHOA KỸ THUẬT VÀ CÔNG NGHỆ BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN MÔN HỌC HỌC KỲ I, NĂM HỌC 2014 – 2015 TÌM HIỂU VỀ FRAMEWORK LARAVEL 4.X GIÁO VIÊN HƯỚNG DẪN NGUYỄN NGỌC ĐAN THANH SINH VIÊN THỰC HIỆN BÙI VĂN TÍNH MSSV: 110112002 LỚP: DA12TT Trà Vinh, ngày 10 tháng năm 2015 LỜI MỞ ĐẦU Laravel Framework 4, vừa mắt vào cuối tháng - 2013 Tuy vậy, PHP Framework nhanh chóng có cộng đồng lớn giới Framework ngơn ngữ lập trình PHP Vậy sao, Framework lại đông đảo lập trình viên đón nhận ? Trước hết, tinh tế Laravel nằm chỗ bắt kịp xu hướng công nghệ mà điểm nhấn tính phiên PHP 5.3 trở lên Điều thể qua khái niệm namespace, composer, closure nhiều tiêu chuẩn design pattern áp dụng tảng Framework Đồng thời, với cách hướng dẫn đơn giản dễ tiếp cận giống với Codeigniter Framework khiến người dùng thích từ lần đầu "tiếp cận" với Framework Laravel có tích hợp phần thư viện symfony áp dụng triệt để mơ hình ORM (một phương pháp lập trình để chuyển đổi từ mơ hình database sang mơ hình đối tượng) với khái niệm liên quan đến Eloquent class Đồng thời, giải vấn đề mà Framework khác mắc phải Chẳng hạn master layout, mơ hình xử lý với ORM dễ dàng dễ mở rộng Bạn không cảm thấy thất vọng đến với Laravel Vì điều lạ Framework mạnh bậc tái lại Laravel Thông qua điều này, bạn tiếp cận PHP Framework khác cực nhanh Do tảng chuẩn mực Laravel theo xu chung phát triển mà PHP Framework theo đuổi Đồ án tìm hiểu Laravel Framework giúp bạn có nhìn cách sử dụng hiệu Framework LỜI CẢM ƠN Laravel Framework giải pháp tốt cho cần phát triển web ngơn ngữ PHP Ngồi tính bảo mật, khả mở rộng cao, dễ dàng làm việc team, giảm thiểu thời gian viết code Thì Laravel Framework cịn có cộng đồng phát triển rộng lớn , nơi mà bạn dễ dàng trao đổi kinh nghiệm đoạn code bảo mật cho website Vì vậy, em chọn đề tài “Tìm hiểu Framework Laravel 4.x ” Đề tài đề tài hay, khơng cịn thiết thực thời buổi nên em thích thú định chọn đề tài Trước chọn đề tài này, em có nhiều băn khoăn chẳng hạn như: có khó không, với kiến thức (chưa tiếp cận với Framework nào) em có làm đề tài hay khơng,… em gặp cơ, người hướng dẫn trực tiếp (Cô Nguyễn Ngọc Đan Thanh) để xin ý kiến Cơ ln động viên khuyến khích em làm cho em có thêm động lực tự tin để chọn đề tài Trong trình làm đề tài tận tình dẫn mà em gặp khó khăn hay mắc phải vướng mắc phức tạp Cuối đề tài em chọn hoàn thành Qua đây, cho em xin gửi lời cảm ơn chân thành đến cô Nhờ cô mà em học nhiều điều bổ ích Kiến thức em nâng cao hơn, cần thiết cho em công việc em sau Một lần cho em nói lời “ Cảm ơn” đến cô NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… Trà Vinh, ngày … tháng … năm … Giáo viên hướng dẫn (Ký tên ghi rõ họ tên) MỤC LỤC MỤC LỤC MỤC LỤC HÌNH MỤC LỤC BẢNG 10 ĐỀ CƯƠNG CHI TIẾT 11 CHƯƠNG 1: ĐẶT VẤN ĐỀ 13 1.1 PHP Framework gì? 13 1.2 Tại nên sử dụng PHP Framework? 14 1.3 Tại nên sử dụng Laravel Framework? .14 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15 2.1 Cấu trúc thư mục Laravel 15 2.2 Cài đặt Laravel .17 2.2.1 Cài Composer 17 2.2.2 Cài Laravel .17 2.3 Cấu hình cho ứng dụng .18 2.4 Chạy ứng dụng với Laravel 18 2.5 Route Laravel Framework 18 2.5.1 Basic Routing 18 2.5.2 Route Parameters 20 2.5.3 Route Filters 20 2.5.4 Name Route 22 2.5.5 Route Groups 24 2.5.6 Route Prefixing 24 2.6 View Laravel Framework 25 2.7 Controller Laravel Framework 27 2.7.1 Khai báo Controller Laravel Framework: .27 2.7.2 Chạy Controller theo phương thức Route::get .27 2.7.3 Implicit Controllers – Sử dụng phương thức Route::controller 28 2.7.4 RESTful Resource Controllers – Sử dụng phương thức Route::resource.29 2.7.5 Controller với Filter .32 2.8 Kết nối sở liệu 34 2.8.1 Cấu hình kết nối sở liệu Laravel Framework 34 2.8.2 Database Transactions 35 2.9 Sử dụng Query Builder 37 2.9.1 Truy vấn liệu .37 2.9.2 Join bảng liệu 41 2.9.3 Hàm Laravel Framework 41 2.9.4 Raw Expressions 42 2.9.5 Câu lệnh Inserts liệu 42 2.9.6 Câu lệnh Updates liệu .43 2.9.7 Câu lệnh Deletes liệu 43 2.9.8 Câu lệnh Union 43 2.10 Eloquent ORM 43 2.10.1 Lấy liệu 44 2.10.2 Thêm liệu (Insert) 45 2.10.3 Cập nhật liệu (Update) 45 2.10.4 Xóa liệu (Delete) .46 2.11 Sử dụng Migrations Schema Builder .46 2.11.1 Lớp Schema Builder – thao tác với bảng CSDL 47 2.11.2 Migrations – Quản lý CSDL 50 CHƯƠNG 3: PHÂN TÍCH - THIẾT KẾ HỆ THỐNG 54 3.1 Yêu cầu chức năng: 54 3.1.1 Yêu cầu lưu trữ 54 3.1.2 Yêu cầu tra cứu 54 3.1.3 u cầu tính tốn 54 3.1.4 Yêu cầu kết xuất .54 3.2 Yêu cầu phi chức 54 3.3 Thiết kế liệu 55 3.3.1 Mơ hình thực thể kết hợp (ERD) 55 3.3.1.1 Mơ hình ERD: 55 3.3.1.2 Danh sách thực thể 55 3.3.1.3 Bảng mô tả thực thể 55 3.3.1.3.1 Thực thể posts 55 3.3.1.3.2 Thực thể comments 56 3.3.1.3.3 Thực thể users 56 3.3.2 Mơ hình vật lý 57 3.3.2.1 Mơ hình vật lý 57 3.3.2.2 Danh sách bảng 57 3.3.2.3 Mô tả chi tiết bảng .57 3.3.3 Ràng buộc toàn vẹn 59 3.3.3.1 Ràng buộc tồn vẹn có bối cảnh quan hệ 59 3.3.3.2 Ràng buộc tồn vẹn có bối cảnh nhiều quan hệ 60 3.4 Thiết kế xử lý .61 3.4.1 Phần Public 61 3.4.2 Phần Admin 61 3.5 Thiết kế giao diện 61 3.5.1 Thiết kế hệ thống thực đơn 61 3.5.2 Thiết kế hình 63 CHƯƠNG 4: CÀI ĐẶT – THỬ NGHIỆM 66 4.1 Các bước chuẩn bị 66 4.2 Dữ liệu thử nghiệm 66 4.3 Một số kết thử nghiệm: 68 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .69 5.1 Kết luận: .69 5.1.1 Kết đạt 69 5.1.2 Hạn chế 69 5.1 Hướng phát triển 69 DANH MỤC TÀI LIỆU THAM KHẢO .70 MỤC LỤC HÌNH Hình 2.1: Thư mục Laravel Framework 15 Hình 2.2: Chức thư mục 15 Hình 2.3: Chức cụ thể thư mục app 16 Hình 2.4: Cài đặt Laravel thành công 17 Hình 2.5: Ánh xạ route action 30 Hình 2.6: Thực migrate command line 52 Hình 2.7: Bảng liệu tạo lệnh migrate 52 Hình 3.1: Mơ hình ERD 55 Hình 3.2: Mơ hình vật lý .57 Hình 3.3: Mơ hình xử lý phần Public 61 Hình 3.4: Mơ hình xử lý phần Admin 61 Hình 3.5: Mơ hình trang chủ Website 62 Hình 3.6: Thực đơn ngang .62 Hình 3.7: Thực đơn đăng nhập 62 Hình 3.8: Thực đơn đăng ký 63 Hình 3.9: Giao diện trang chủ 63 Hình 3.10: Giao diện đăng nhập khơng thành cơng .64 Hình 3.11: Giao diện đăng ký không thành công 64 Hình 3.12: Giao diện đăng nhập thành công 65 Hình 3.13: Giao diện đăng ký thành cơng .65 Bảng 4.1: Thông tin posts 66 Bảng 4.2: Thông tin users 67 Hình 4.3: Màn hình kết search 68 MỤC LỤC BẢNG Bảng 3.1: Mô tả thực thể posts 56 Bảng 3.2: Mô tả thực thể comments 56 Bảng 3.3: Mô tả thực thể user 57 Bảng 3.4: Bảng posts .57 Bảng 3.5: Bảng comments .58 Bảng 3.6: Bảng users .58 Bảng 3.7: Tầm ảnh hưởng bối cảnh posts 59 Bảng 3.8: Tầm ảnh hưởng bối cảnh users 59 Bảng 3.9: Tầm ảnh hưởng bối cảnh comments 60 Bảng 3.10: Tầm ảnh hưởng bối cảnh posts comments 60 Bảng 3.11: Tầm ảnh hưởng bối cảnh users comments 60 10 Bảng 3.1: Mô tả thực thể posts Tên thuộc tính Diễn giải id Mã số viết post_name Tên viết link_post Địa viết link_picture Địa hình viết type Loại viết date Ngày đăng viết views Lượt xem viết comments Lượt bình luận viết 3.3.1.3.2 Thực thể comments Tên thực thể: comments Bảng 3.2: Mô tả thực thể comments Tên thuộc tính Diễn giải id Mã số bình luận post_id Mã số viết user_id Mã số thành viên content_comment Nội dung bình luận 3.3.1.3.3 Thực thể users Tên thực thể: users Bảng 3.3: Mô tả thực thể user 55 Tên thuộc tính Diễn giải id Mã số thành viên username Tên thành viên password Mật thành viên email Địa mail thành viên 3.3.2 Mơ hình vật lý 3.3.2.1 Mơ hình vật lý Hình 3.2: Mơ hình vật lý 3.3.2.2 Danh sách bảng - Bảng posts - Bảng comments - Bảng users 3.3.2.3 Mô tả chi tiết bảng - Bảng posts: Bảng 3.4: Bảng posts STT Thuộc tính Diễn giải Loại giá trị Kiểu liệu Miền giá trị id Mã viết Bắt buộc Số Khóa Chiều dài Ghi 56 post_name Tên viết Bắt buộc Chuỗi 100 link_post Địa viết Bắt buộc Chuỗi 500 link_picture Địa hình viết Bắt buộc Chuỗi 500 type Loại viết Bắt buộc Chuỗi 10 date Ngày đăng viết Bắt buộc Ngày views Lượt xem viết Bắt buộc Số comment Lượt bình luận viết Bắt buộc Số - Bảng comments: Bảng 3.5: Bảng comments STT Thuộc tính Diễn giải Loại giá trị Kiểu liệu Miền giá trị id Mã số bình luận Bắt buộc Số Khóa post_id Mã số viết Bắt buộc Số user_id Mã số thành viên Bắt buộc Số content_comment Nội dung bình luận Bắt buộc Chuỗi Chiều dài Ghi 500 - Bảng users: Bảng 3.6: Bảng users STT Thuộc tính Diễn giải Loại giá trị Kiểu liệu Miền giá trị id Mã số thành viên Bắt buộc Số Khóa Chiều dài Ghi 57 username Tên thành viên Bắt buộc chuỗi 100 password Mật thành viên Bắt buộc chuỗi 100 email Địa mail thành viên Bắt buộc Chuỗi 500 3.3.3 Ràng buộc toàn vẹn 3.3.3.1 Ràng buộc tồn vẹn có bối cảnh quan hệ * RBTV1(Ràng buộc toàn vẹn 1): Mỗi viết phải có mã viết để phân biệt với viết khác - Bối cảnh: posts - Tầm ảnh hưởng: Bảng 3.7: Tầm ảnh hưởng bối cảnh posts Quan hệ Thêm Xóa Sửa posts + - + * RBTV2(Ràng buộc tồn vẹn 2): Mỗi thành viên phải có mã thành viên để phân biệt với thành viên khác - Bối cảnh: users - Tầm ảnh hưởng: Bảng 3.8: Tầm ảnh hưởng bối cảnh users Quan hệ Thêm Xóa Sửa users + - - * RBTV3(Ràng buộc tồn vẹn 3): Mỗi bình luận phải có mã bình luận để phân biệt với bình luận khác - Bối cảnh: comments - Tầm ảnh hưởng: 58 Bảng 3.9: Tầm ảnh hưởng bối cảnh comments Quan hệ Thêm Xóa Sửa comments + - +(post_id,user_id) 3.3.3.2 Ràng buộc toàn vẹn có bối cảnh nhiều quan hệ * RBTV1(Ràng buộc tồn vẹn 1): post_id khóa ngoại comments tham chiếu từ posts - Bối cảnh: posts, comments - Tầm ảnh hưởng: Bảng 3.10: Tầm ảnh hưởng bối cảnh posts comments Quan hệ Thêm Xóa Sửa posts + - +(post_id) comments + - +(post_id) * RBTV2(Ràng buộc toàn vẹn 2): user_id khóa ngoại comments tham chiếu từ users - Bối cảnh: users, comments - Tầm ảnh hưởng: Bảng 3.11: Tầm ảnh hưởng bối cảnh users comments Quan hệ Thêm Xóa Sửa users + - +(user_id) comments + - +(user_id) 3.4 Thiết kế xử lý 3.4.1 Phần Public 59 Hình 3.3: Mơ hình xử lý phần Public 3.4.2 Phần Admin Hình 3.4: Mơ hình xử lý phần Admin 3.5 Thiết kế giao diện 3.5.1 Thiết kế hệ thống thực đơn 3.5.1.1 Thực đơn Mơ hình Website: Thực đơn ngang BANNER Thực đơn ngang 60 Sidebar Nội dung BOTTOM Hình 3.5: Mơ hình trang chủ Website Các thực đơn Website: > Thực đơn ngang: Hình 3.6: Thực đơn ngang > Thực đơn đăng nhập: Hình 3.7: Thực đơn đăng nhập > Thực đơn đăng ký: 61 Hình 3.8: Thực đơn đăng ký 3.5.2 Thiết kế hình Giao diện trang chủ: Hình 3.9: Giao diện trang chủ * Giao diện trang HTML5,CSS, JAVASCRIPT, PHP giống trang chủ khác phần nội dung Giao diện đăng nhập không thành công: 62 Hình 3.10: Giao diện đăng nhập khơng thành cơng Giao diện đăng ký khơng thành cơng: Hình 3.11: Giao diện đăng ký không thành công Giao diện đăng nhập thành cơng: 63 Hình 3.12: Giao diện đăng nhập thành cơng Giao diện đăng ký thành cơng: Hình 3.13: Giao diện đăng ký thành công 64 CHƯƠNG 4: CÀI ĐẶT – THỬ NGHIỆM 4.1 Các bước chuẩn bị Để thực thi trang web cần cài đặt: - Laravel Framework phiên 4.2 - XAMPP phiên 5.6.3 (phiên cao tốt) Wampserver phiên 2.5(phiên cao tốt) 4.2 Dữ liệu thử nghiệm - Thông tin posts: Bảng 4.1: Thông tin posts id post_n link_p ame ost link_pict ure http:// localh ost/ki Sơ enthu lược c24h/ public thuộc /sotính luocHTM veL5 thuocDown tinhload html5 downl oad http://loc alhost/ki enthuc24 h/public/ assets/im g/conten t/timthu mb.jpg width 189 height type date views comments 158 HT ML 05/1 2/20 13 0 65 http:// localh ost/ki Cách enthu sử c24h/ dụng public CSS3 /cachBorde sur dungRadiu css3s cho border IE8 trở radius xuống -choie8troxuong http://loc alhost/ki enthuc24 h/public/ assets/im g/conten t/IE8.jpg http:// localh ost/ki enthu 30 thư c24h/ viện public jQuer /30y Text thuEffect vienbạn jquery cần -textbiết effectbancanbiet http://loc alhost/ki enthuc24 h/public/ assets/im g/conten t/30jquer y.jpg 189 189 158 03/0 CSS 4/20 14 0 158 JAV AS CRI PT 0 29/0 5/20 14 Thông tinh users: Bảng 4.2: Thông tin users id username password email Admin adminitrator vantinhtv79@gmail.com Hào duongvanhao vanhao@gmail.com 66 4.3 Một số kết thử nghiệm: - Thực tìm kiếm: Chương trình hoạt động tốt, phù hợp với người sử dụng Hình 4.3: Màn hình kết search 67 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận: 5.1.1 Kết đạt - Có kiến thức PHP Framework - Hiểu cách thao tác với sở liệu theo phương pháp lập trình hướng đối tượng mà Laravel Framework cung cấp - Hiểu cách thức hoạt động trang web động - Tạo trang web có giao diện thân thiện, thuận tiện cho người sử dụng 5.1.2 Hạn chế Bên cạnh kết đạt số hạn chế: - Do thời gian nghiên cứu có hạn khả cịn hạn chế nên số vấn đề trang web chưa thực thi Ví dụ như: Chưa thống kê số đăng xem nhiều nhất, chưa đăng mục sidebar (Bài đăng) thông qua sở liệu mà chủ yếu làm thủ công - Chưa làm trang Download Upload tài liệu cho trang web, chủ yếu lấy liên kết từ trang bên - Chưa làm phần phân trang cho có nội dung dài 5.1 Hướng phát triển - Đưa thống kê đăng xem nhiều cho trang web - Tạo đăng sidebar cách tự động thông qua việc sử dụng sở liệu - Tạo trang Download Upload tài liệu cho trang web - Phân trang đăng có nội dung dài 68 DANH MỤC TÀI LIỆU THAM KHẢO Nguồn từ Web: - http://laravel.com/docs/4.2 69 ... thử nghiệm 66 4.3 Một số kết thử nghiệm: 68 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .69 5.1 Kết luận: .69 5.1.1 Kết đạt 69 5.1.2 Hạn chế ... khơng Lúc hồn tồn cho vào nhóm có tiền tố admin thực kiểm tra Ví dụ: Route::group(array(“prefix”=>”admin”,”before”=>”checklogin”), function(){ // phần sử lý nằm }); Với ví dụ nhóm tất link có tiền... Laravel Framework 4, vừa mắt vào cuối tháng - 2013 Tuy vậy, PHP Framework nhanh chóng có cộng đồng lớn giới Framework ngơn ngữ lập trình PHP Vậy sao, Framework lại đơng đảo lập trình viên đón nhận