Chương 1: GIỚI THIỆU 1.1 Mô hình MVC Hình 1.2: Quy trình của mô hình MVC (Model – View - Controller) MVC (Model - View - Controller) là mẫu kiến trúc phần mềm trên máy tính nhằm mục đích tạo lập giao diện cho người dùng. Hệ thống MVC được chia thành ba phần có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao diện người dùng. Ba thành phần trong mô hình MVC: - Model: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database (cơ sở dữ liệu), đối tượng mô tả dữ liệu như các Class, hàm xử lý… - View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng. - Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng.
Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 5 Chương 1: GIỚI THIỆU Mô hình trên (hình 1.2) thể hiện quy trình MVC trong dự án website, sẽ hoạt động như sau: - Khi có một yêu cầu từ phía Client (máy khách) gửi đến Server, bộ phận Controller có nhiệm vụ nhận yêu cầu, xử lý yêu cầu đó. Và nếu cần sẽ gửi đến Model chuẩn bị data và gửi lại cho Controller - Sau khi xử lý xong, toàn bộ kết quả được gửi dữ liệu trở lại View và hiển thị cho người dùng trên máy khách. Kết thúc quy trình hoạt động.2 Model trong Laravel Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database (cơ sở dữ liệu), đối tượng mô tả dữ liệu như các Class, hàm xử lý… Điều kiện để tạo một Model có thể hoạt động: - Đặt trong thư mục App/ - Tên class bên trong phải cùng tên với file - Class phải kế thừa Model gốc. Để tạo một Model: Hình 1.3 View trong Laravel Nhiệm vụ của View là nhận dữ liệu từ Controller và sau đó dựa vào layout của giao diện nó sẽ xử lý dữ liệu theo yêu cầu.
- Để tạo View trong Laravel thì View phải được tạo trong thư mục resources và phần mở rộng là .php nếu bạn sử dụng kế thừa blade template. - Gọi View trong Controller: Hình 1.4: Gọi View trong Controller Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 6 Chương 1: GIỚI THIỆU 1.4 Controller trong laravel Có nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng. Điều kiện để tạo Controller trong Laravel: - Phải được đặt trong App/Http/controller - Tên của controller phải giống với tên class của file đó, class controller phải kế thừa từ Controller Có 2 cách tạo Controller: - Tạo theo cách thủ công bằng tay - Tạo bằng lệnh mà Laravel đã cung cấp sẵn: Hình 1.5: Tạo Controller Cách để gọi action (hoạt động) trong Controller: Hình 1.6: Gọi hoạt động trong Controller 1.5 Route trong Laravel: - Route trong Larvel cũng như các framework khác, đều có chức năng là định tuyến ra các action cho các sự kiện tương ứng. Laravel hỗ trợ đa dạng về route, gồm các loại sau: ➢ Route::get: nhận request với phương thức GET ➢ Route::post: nhận request với phương thức POST ➢ Route::put: nhận request với phương thức PUT ➢ Route::delete: nhận request với phương thức DELETE ➢ Route::match: kết hợp nhiều phương thức lại ➢ Route::any: nhận tất cả các phương thức ➢ Route::group: tạo các nhóm route ➢ Route::controller: gọi đến controller tương ứng ➢ Route::resource: sử dụng với resource controller Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 7 Chương 1: GIỚI THIỆU Ví dụ: Hình 1.7: Định tuyến trong Route - Route trong Laravel cũng như ở các framework khác đều hỗ trợ chúng ta truyền tham số, khi khai báo tham số phải đặt trong dấu {}.6 Blade template engine trong Laravel - Hiện nay chỉ có một số framework có tích hợp Blade template engine (động cơ kế thừa khuôn mẫu), vì sử dụng template engine sẽ làm giảm hiệu năng trang website nhưng với Laravel framework đã có tích hợp sẵn cho chúng ta blade template (kế thừa khôn mẫu) với tốc độ xử lý rất tốt.
- Theo chúng ta được biết blade template bản chất là một view trong Laravel và tên file phải kết thúc bằng. - Thường thì chúng ta sử dụng echo, printf để in dữ liệu. Nhưng để hiển thị dữ liệu trong blade template thì chúng ta dữ dụng {{}} để in dữ liệu ra màn hình.Ví dụ: {{‘tên biến’}} - Các vòng lặp trong blade template: for, foreach - Câu lệnh rẽ nhánh : if-else 1. Các ứng dụng web hoạt động theo cơ chế nhận các câu lệnh HTTP từ người sử dụng, sau đó thực thi các câu lệnh này.
- Đối với Laravel khi xử lý form thì bắt buộc phải có csrf_token ( tránh tấn công ) nếu không sẽ không thực hiện đc submit form (gửi biểu mẫu). Có 2 cách tạo csrf: o Dùng : {{ csrf_field() }} o Dùng : <input type=”hidden” name=”_token” value=”<?php echo csrf_token(); ?>” > hoặc đối với blade template <input type=”hidden” name=”_token” value=”{{ csrf_token() }} ?>” >. Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 8 Chương 1: GIỚI THIỆU 1.8 Validate (Ràng buộc dữ liệu) - Là tiến trình kiểm tra dữ liệu có tuân theo qui tắc đã cho không, ràng buộc về dữ liệu của form nhằm đảm bảo tính chặt chẽ của ứng dụng. Để ràng buộc dữ liệu thì chúng ta phải khai báo như sau: Hình 1.8: Khai báo để ràng buộc dữ liệu - Có 4 loại validate khác nhau ,tiếp theo chúng ta gọi cú pháp: $this->validate(…); o $request: là biến tham chiếu đối tượng Request mà các bạn khai báo ở đầu hàm.
o $pattern: là mảng định nghĩa dữ liệu đầu vào của các trường trong form. o $messenger: là mảng chứa nội dung báo lỗi o $customName: là mảng chứa các tên cho các trường trong form Ví dụ: Hình 1.9: Ràng buộc dữ liệu Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 9 Chương 1: GIỚI THIỆU 1.9 Artisan (giao diện command-line) trong Laravel Artisan là giao diện command-line được thêm vào Laravel. Nó cung cấp một số lệnh hữu ích mà có thể hỗ trợ bạn trong khi xây dựng ứng dụng của mình. Giảm thiểu thời gian viết code cũng như tự động hóa một số công việc.
Có thể sử dụng câu lệnh php artisan list để xem danh sách các câu lệnh hỗ trợ bởi Artisan.10: Danh sách câu lệnh được Artisan hỗ trợ 1.10 Migrations (Quản lý cấu trúc database) Được xem như quản lý database có tác dụng lưu trữ cấu trúc database để sửa đổi database dễ dàng hơn. Điều kiện để sử dụng migrations : - Kết nối với database. - Phải nằm trong thư mục App\database\migations Các lệnh được dùng để tạo migrations: - php artisan make:migration ( tên ) : tạo Migrations thông thường Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 10 Chương 1: GIỚI THIỆU - php artisan make:migration ( tên ) –create=tên bảng : tạo bằng bảng - php artisan make:migration ( tên ) –table=tên bảng :tạo để chỉnh sửa bảng Ví dụ: Hình 1.11: Tạo Migrations Bảng users vừa tạo sẽ gồm các cột: public function up() { Schema::create('users', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email'); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } Có 5 câu lệnh để thực thi: - php artisan migrate : chạy migration - php artisan migrate:resest : reset migration - php artisan migrate:refesh : chạy lại migration - php artisan migrate:status : trạng thái migration - php artisan migrate:install : cài đặt migration Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 11 Chương 1: GIỚI THIỆU 1. Với hệ thống quản trị cơ sở dữ liệu MySQL khi đưa vào sử dụng được đánh giá cao nhờ việc tích hợp với apache cũng như PHP.
Hệ thống quản trị này được tích hợp với apache và PHP, tương thích với rất nhiều trình duyệt, hệ điều hành như Ubuntu, Linux, macOS, Microsoft Windows,. Hiện phần mềm này được dùng trong các trang web lớn như Google, Facebook, Twitter, Yahoo và YouTube.Từ đó có thể thấy tính hữu dụng, phổ biến của MySQL trong lĩnh vực thiết kế và phát triển website. Quá trình hình thành và phát triển của MySQL được tóm tắt như sau: - Công ty Thuy Điển MySQL AB phát triển MySQL vào năm 1994. - Phiên bản đầu tiên của MySQL phát hành năm 1995 Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 12 Chương 1: GIỚI THIỆU - Công ty Sun Microsystems mua lại MySQL AB trong năm 2008 - Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems.
Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB. Oracle tiếp tục phát triển MySQL lên phiên bản 5. - 2013 MySQL phát hành phiên bản 5.6 - 2015 MySQL phát hành phiên bản 5.7 - MySQL đang được phát triển lên phiên bản 8.0 Cách thức hoạt động của MySQL: Trong môi trường MySQL thì máy khách và máy chủ sẽ hoạt động với sự tương tác qua lại liên tục với nhau dựa trên nguyên lý: - MySQL tạo ra các bảng nhằm lưu trữ dữ liệu, đồng thời định nghĩa mối quan hệ giữa các bảng đó. - Máy khách sẽ gửi những yêu cầu SQL bằng lệnh đặc biệt thông qua - Những ứng dụng trên máy chủ lúc này sẽ nhận được và đưa ra phản hồi thông tin, từ đó trả kết quả trực tiếp về máy khách.
Ưu điểm của MySQL: Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 13 Chương 1: GIỚI THIỆU • Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. • Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao. • Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp. • Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết.
• Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi. Đề tài: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ 14 Chương 2. MÔ TẢ NGHIỆP VỤ 2. TỔNG QUAN Website bán đồng hồ là website thương mại điện tử dành cho những người ưa chuộng đồng hồ với nhiều phong cách lịch lãm, trẻ trung năng động, cá tính thời trang.Tùy theo từng đối tượng cụ thể sẽ có những chức năng cụ thể tương ứng như xem chi tiết sản phẩm, thanh toán, xem thương hiệu, tìm sản phẩm, đăng ký tài khoản, đổi mật khẩu, đăng nhập, đăng xuất.
CHỨC NĂNG QUẢN TRỊ Là người trực tiếp quản lý đến các chức năng cơ bản của website, cụ thể là quản lý các đối tượng: người dùng, ngày tháng, thời gian, đăng ký tài khoản.