CHƯƠNG 1: TỔNG QUAN VỀ Laravel Giới thiệu Chương này trình bày các kiến thức liên quan đến các thư viện mã nguồn mở nổi bật hiện nay. Bên cạnh đó cũng đưa ra cách đánh giá các framework, để từ đó chọn lựa được framework phù hợp cho dự án. Mục tiêu Chọn lựa Laravel framework để tìm hiểu trong môn học này: - Liệt kê được các thư viện mã nguồn mở nổi bật - Đánh giá được ưu nhược điểm các framework - Liệt kê được các tiêu chí để chọn lựa framework phù hợp - Cài đặt được Laravel framework - Sau khi học xong chương này, sinh viên có thể khởi tạo được dự án với Laravel hoặc với các framework khác Giáo Trình Lập Trình Back-End Web 2 Trang 1 1.1 GIỚI THIỆU CÁC FRAMEWORK MÃ NGUỒN MỞ Yêu cầu đối với môn học Lập trình Back-End Web 1 là người học phải tự hiện thực các tính năng đề ra. Đối với môn Lập trình Back-End Web 2 yêu cầu người học phải tận dụng tối đa tài nguyên đã có (source code đã có) để hoàn thiện tính năng cần thực hiện trong website.
Framework mã nguồn mở hiện nay đã có rất nhiều, được cung cấp một cách chính quy (gồm source code và tài liệu hướng dẫn) đã được rất nhiều lập trình viên chọn lựa để phát triển dự án. Dưới đây là một số framework được đánh giá cao hiện nay: CodeIgniter (https://www.com) Zend (http://www.com) Laravel (https://laravel.com) Symfony (https://symfony.com) Kể từ đây, khi tiếp cận và sử dụng một framework nào đó, nhà phát triển phần mềm phải tận dụng tối đa những gì framework đó cung cấp. Thông thường các framework được cung cấp luôn có bộ tài liệu rất rõ ràng (những gì framework đã hiện thực). Yêu cầu người sử dụng framework phải nắm bắt được các điều này để tránh các sai sót.
Bên cạnh những framework lớn như trên, cũng có 1 số thư viện vừa và nhỏ (chỉ viết một số tính năng nào thôi: tính năng đăng nhập, tính năng quản lý bài viết, .): lessphp (http://leafo.net/lessphp) Savsoft Quiz(https://savsoftquiz.com) Các framework mã nguồn mở có thể có thu phí hoặc không thu phí. Thông thường các framework thực hiện các tính năng phổ dụng (thêm, xóa, sửa,. bài viết) sẽ không thu phí. Các framework thực hiện các tính năng chuyên sâu, tính năng nghiệp vụ khó,.
sẽ có thu phí. Ví dụ một số framework có thu phí: Giáo Trình Lập Trình Back-End Web 2 Trang 2 phpFox (https://www.com) SocialEngine (https://www.2 ĐÁNH GIÁ ƯU NHƯỢC ĐIỂM CÁC FRAMEWORK Trong phần trên (1.1), đã được mô tả một số framework. Trong phần này sẽ thống kê một số ghi nhận (đánh giá) về framework trên. CodeIgniter FRAMEWORK Đây là một trong những thư viện ra đời sớm (năm 2000), là nền tảng về ý tưởng thư viện mã nguồn mở viết bằng PHP để xây dựng website.
Chính vì ra đời từ sớm nên xét về tính hữu dụng cho những dự án ngày nay CodeIgniter vẫn còn nhiều hạn chế, chưa đáp ứng đủ yêu cầu để xây dựng website. Lý do vì sao, ngày nay có nhiều công ty vẫn sử dụng CodeIgniter vẫn tiếp tục dùng và phát triển? Chính vì, ngay từ đầu họ xây dựng trên nền CodeIgniter và đến ngày nay hệ thống vẫn hoạt động ổn định. Chi phí để họ tiếp tục phát triển thấp hơn nhiều so với chi phí xây dựng website với thư viện mới và hiện đại. Zend FRAMEWORK Thư viện Zend phát triển chủ yếu cung cấp các tính năng, nghiệp vụ mang tính chuyên sâu (nâng cao).
Việc tiếp cận Zend sẽ khó khăn hơn nhiều so với các framework khác. Zend cung cấp rất mạnh mẽ các tính năng liên kết với các đơn vị khác như: Facebook, Amazon, Google,. Laravel FRAMEWORK Laravel ra đời tương đối “muộn” hơn so với các framework khác. Chính vì vậy có điểm lợi và nhược.
Điểm lợi: khắc phục các nhược điểm của các framework khác, mang tính hiện đại. Điểm nhược: các dự án tiếp cận Laravel còn chưa nhiều. Symfony FRAMEWORK Tương tự như Zend. Tuy nhiên, Laravel lại được xây dựng trên nền tảng của Symfony.
Do vậy trong source code của Laravel hiện tại vẫn đang sử dụng 1 số vendor từ Symfony. Giáo Trình Lập Trình Back-End Web 2 Trang 3 1.3 CÁC TIÊU CHÍ ĐỂ CHỌN LỰA FRAMEWORK PHÙ HỢP Thông thường để hoàn thiện một website cần có một đội ngũ nhân sự hoạt động trong các lĩnh vực như: phân tích yêu cầu khách hàng, thiết kế đồ họa, thiết kế web, thiết kế database, phát triển code. Chính vì vậy việc chọn lựa framework phù hợp phụ thuộc rất nhiều vào đội ngũ nhân sự phát triển code. Họ có thật sự nắm vững framework cần dùng hay không? Như đã đề cập ở trên, một trong những điểm nổi bật của framework là tài liệu hướng dẫn.
Đã là framework cung cấp trên internet một cách chính quy (mang tính chuyên nghiệp) thì đều phải có tài liệu hướng dẫn kèm theo. Trong tài liệu hướng dẫn, framework sẽ mô tả rất rõ các tính năng đã hiện thực. Từ đây, dựa vào tính năng dự án và tính năng framework cung cấp nhà phát triển phần mềm sẽ có sự chọn lựa phù hợp nhất, giảm chi phí nhất. Chọn lựa dựa trên tiêu chí: framework đã hiện thực nhiều tính năng trong dự án nhất.
Bên cạnh đó, tiêu chí về sự nổi bật cũng đóng vai trò quan trọng. Kiểm tra ý kiến đóng góp từ cộng đồng mạng về framework dự kiến sử dụng (tích cực/tiêu cực). Qua đó để nắm được tình hình của framework như: framework có bị nhiều lỗi hay không? Hỗ trợ từ framework có chuyên nghiệp không? 1.4 TÌM HIỂU VỀ LARAVEL Laravel ra đời trong những năm gần đây (2010), chính vì vậy những đặc điểm nổi bật của một framework hiện đại đều có trong Laravel. Việc tiếp cận Laravel lúc đầu có rất nhiều cách, tài liệu này được trình bày theo cách thủ công.
Chú ý rằng: Laravel hiện tại có phiên bản LTS và không phải LTS. Khi sử dụng phiên bản LTS, thời gian hỗ trợ vá lỗi và bảo mật có thời gian kéo dài hơn từ đội ngũ phát triển Laravel. CẤU HÌNH LARAVEL Yêu cầu phiên cấu hình hệ thống Giáo Trình Lập Trình Back-End Web 2 Trang 4 PHP >= 5.4 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension Tokenizer PHP Extension XML PHP Extension Khi sử dụng trên Windows thường sử dụng các phần mềm sau: WampServer 3 Ampp Xampp VertrigoServ Với các phần mềm trên, cần chú ý kiểm tra phiên bản PHP để đáp ứng yêu cầu. Gợi ý: sử dụng hàm phpinfo() để kiểm tra phiên bản PHP.
Như đã nói, việc cài đặt Laravel có nhiều cách. Tài liệu sẽ hướng dẫn cách thủ công như sau: Download phiên bản Laravel tại nguồn thư viện của Khoa CNTT Tạo project có tên web2, đây là nơi lưu trữ source code Laravel Mở trình duyệt với url: http://localhost/web2. Kết quả như màn hình sau: Giáo Trình Lập Trình Back-End Web 2 Trang 5 Hình 1- 1 Màn hình tại trang chủ Laravel Ngoài ra, Laravel hỗ trợ cách cài đặt thông qua composer. Composre là một phần mềm hỗ trợ trong việc quản lý các thư viện trong PHP mà ứng dụng cần sử dụng.
Cách thức thực hiện được tiến hành thông qua command line. Dùng command line điều hướng đến vị trí cần tạo project Hình 1- 2 Kiểm tra phiên bản composer Như hình trên, dự án sẽ được thiết lập tại: D:\79-laravel\1-auth\5-laravel-56 Thực hiện câu lệnh command line: composer –version để kiểm tra phiên bản của composer. Laravel hiện tại đã trải qua nhiều phiên bản. Mặc định khi cài đặt Laravel thông qua composer, phiên bản mới nhất của Laravel sẽ được thiết lập.
Giáo Trình Lập Trình Back-End Web 2 Trang 6 Ví dụ tạo dự án có tên blog composer create-project --prefer-dist laravel/laravel blog composer create-project --prefer-dist laravel/laravel blog "5.*" Để chỉ định rõ phiên bản của Laravel Danh sách các phiên bản của Laravel được mô tả tại trang https://laravel.com/docs/master/releases Hình 1- 3 Các phiên bản trong Laravel Mặc định khi thực hiện cài đặt thông qua composer. Source code Laravel sẽ được tải về từ trang https://packagist. Tại trang này sẽ mô tả chi tiết hơn các phiên bản của Laravel. Giáo Trình Lập Trình Back-End Web 2 Trang 7 Hình 1- 4 Các phiên bản Laravel trên packagist.org Khi thực hiện câu lệnh trên, source code của Laravel sẽ được tạo.
Hình 1- 5 Quá trình cài đặt Laravel Khi download trực tiếp source code từ https://github.com/ hay https://packagist.org/ sẽ không được đầy đủ như hai cách cài đặt được mô tả trên, vì mặc định các vendor sẽ không có. Để tạo các vendor, composer cung cấp câu lệnh composer install. Ngoài ra, để thiết lập tính sẵn sàng sử dụng các vendor trong Laravel, composer cung cấp câu lệnh composer dump-autoload. Giáo Trình Lập Trình Back-End Web 2 Trang 8 1.
GIỚI THIỆU VỀ CẤU TRÚC ỨNG DỤNG Sau khi khởi tạo Laravel thành công (chỉ cài đặt, truy cập http://localhost/web2 thành công). Cấu trúc thư mục được mô tả như hình sau: Hình 1- 6 Cấu trúc thư mục tổ chức code của Laravel Giải thích (1) Nơi lưu trữ các file sẽ tiếp tục phát triển (2) Nơi lưu trữ các thư viện chính của Laravel. Đây xem như “quả tim” của Laravel. (3) Các file cài đặt thêm.
Chú ý có những file (ví dụ: .htaccess) chỉ có phần mở rộng, rất hay gặp lỗi trên Windows (vì trên Windows yêu cầu file phải có tên) Giải thích thêm Giáo Trình Lập Trình Back-End Web 2 Trang 9 Ý niệm trong lập trình với framework: “hạn chế sửa những gì framework đã làm”, chính nhờ đó việc nâng cấp phiên bản sẽ gặp nhiều thuận lợi. Các thư viện trong vendor không nên chỉnh sửa. Đây chính là lý do vì sao khi download source Laravel từ một số trang không có phần vendor. VIẾT CHƯƠNG TRÌNH HELLO WORLD TRONG Laravel Khi tiếp cận bất cứ một chương trình mới, chương trình “Hello World” luôn là chương trình đầu tiên cần phải hiện thực.
Hướng dẫn viết chương trình “Hello World” bằng Laravel Tại file : *\web2 \routes\web.php, thêm dòng code sau: Route::get('/helloworld', function () { return view('helloworld'); }); Tại nơi lưu trữ: *\web2\resources\views, tạo file helloworld.php với nội dung là mã HTML. Ví dụ: Giáo Trình Lập Trình Back-End Web 2 Trang 10 <!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello World</title> <!-- Styles --> <style> body { text-align: center; margin-top: 10%; } </style> </head> <body> <h1>Hello World</h1> </body> </html> Truy cập: http://localhost/web2/helloword Giáo Trình Lập Trình Back-End Web 2 Trang 11 Hình 1- 7 Trang Hello World 1.5 BÀI TẬP Bài 1: Tạo trang với đường dẫn sau: http://localhost/web2/tdc với Laravel Hình minh họa: Hình 1- 8 Bài tập 1 Sử dụng tài nguyên cung cấp lab1-1.zip Giao diện thực tế: http://fit.vn/chuyen-de Bài 2: Tiếp cận các thư viện khác Cách thức tiến hành: thực hiện theo nhóm.