# I. Laravel Sail Laravel Sail là một bộ công cụ giúp bạn cấu hình và chạy một môi trường phát triển Laravel với Docker. Để cài đặt Laravel với Laravel Sail, bạn có thể thực hiện các bước sau: ### Bước 1: Tạo Một Project Laravel Mới Chạy lệnh sau để tạo một project Laravel mới: ```bash composer create-project --prefer-dist laravel/laravel your-project-name ``` ### Bước 2: Di Chuyển vào Thư Mục Project ```bash cd your-project-name ``` ### Bước 3: Cài Đặt Laravel Sail Chạy lệnh sau để cài đặt Laravel Sail: ```bash composer require laravel/sail --dev ``` ### Bước 4: Khởi Tạo Sail Sử dụng lệnh sau để khởi tạo Sail và tạo file `docker-compose.yml`: ```bash php artisan sail:install ``` ### Bước 5: Cấu Hình Database và Môi Trường Mở file `.env` và cấu hình database connection. Sử dụng các biến môi trường của Sail: ```env DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=sail DB_USERNAME=sail DB_PASSWORD=password ``` ### Bước 6: Khởi Động Docker Containers Sử dụng lệnh sau để khởi động Docker containers: ```bash ./vendor/bin/sail up ``` ### Bước 7: Chạy Migrate và Seed ```bash ./vendor/bin/sail artisan migrate --seed ``` ### Bước 8: Truy Cập Ứng Dụng Mở trình duyệt và truy cập http://localhost. ### Bước 9: Dừng Docker Containers Khi bạn đã hoàn tất công việc, bạn có thể dừng Docker containers bằng cách sử dụng lệnh: ```bash ./vendor/bin/sail down ``` Lưu ý: Các lệnh `sail` có thể được thay thế bằng `docker-compose exec` trong môi trường Docker thông thường. Đây chỉ là một hướng dẫn cơ bản để bắt đầu với Laravel Sail. Bạn có thể tìm hiểu thêm về Laravel Sail trong [tài liệu chính thức](https://laravel.com/docs/sail). --- # II. Laravel Authentication Laravel cung cấp một hệ thống xác thực (authentication) mạnh mẽ và linh hoạt. Hệ thống này giúp bạn dễ dàng xây dựng các chức năng đăng nhập, đăng ký, và quản lý người dùng trong ứng dụng Laravel của bạn. Dưới đây là một hướng dẫn tổng quan về cách sử dụng hệ thống xác thực trong Laravel. ### Bước 1: Cài Đặt Laravel Authentication Chạy lệnh sau để cài đặt Laravel Authentication: ```bash composer require laravel/ui ``` Sau đó, chọn một trong những lựa chọn sau để cài đặt các tệp cần thiết: - Cài đặt Bootstrap và jQuery: ```bash php artisan ui bootstrap --auth ``` - Cài đặt Vue và Axios: ```bash php artisan ui vue --auth ``` ### Bước 2: Chạy Migrate Chạy migrate để tạo bảng người dùng: ```bash php artisan migrate ``` ### Bước 3: Bảo vệ Tuyến Mặc định, các tuyến trong `routes/web.php` đã được bảo vệ bởi middleware `auth`. Điều này đảm bảo rằng chỉ có người dùng đã đăng nhập mới có thể truy cập các tuyến đó. ### Bước 4: Sử Dụng Middleware trong Controller (Nếu Cần Thiết) Nếu bạn muốn bảo vệ một phương thức cụ thể trong một controller, bạn có thể sử dụng middleware `auth` bằng cách thêm nó vào hàm constructor hoặc trực tiếp trong hàm. ```php public function __construct() { $this->middleware('auth'); } ``` ### Các Chức Năng Cơ Bản #### Đăng Nhập Tạo một form đăng nhập trong view và sử dụng `auth` facade để xử lý đăng nhập: ```php use Illuminate\Support\Facades\Auth; public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { // Đăng nhập thành công return redirect()->intended('/dashboard'); } // Đăng nhập thất bại return back()->withErrors(['email' => 'Thông tin đăng nhập không đúng']); } ``` #### Đăng Ký Tạo một form đăng ký và sử dụng `User` model để tạo mới người dùng: ```php use App\Models\User; public function register(Request $request) { $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8|confirmed', ]); User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); // Đăng ký thành công return redirect('/login'); } ``` #### Đăng Xuất Sử dụng `auth` facade để đăng xuất người dùng: ```php use Illuminate\Support\Facades\Auth; public function logout() { Auth::logout(); return redirect('/'); } ``` ### Tùy Chỉnh và Mở Rộng Laravel Authentication cung cấp nhiều tính năng như xác nhận email, đặt lại mật khẩu, và nhiều hơn nữa. Bạn có thể tìm hiểu chi tiết trong [tài liệu chính thức Laravel Authentication](https://laravel.com/docs/8.x/authentication). ### Kết Luận Hệ thống xác thực Laravel giúp bạn quản lý người dùng một cách dễ dàng và bảo mật. Bạn có thể tùy chỉnh và mở rộng chúng theo nhu cầu cụ thể của ứng dụng của mình. --- # III. Laravel Mix Laravel Mix là một công cụ tích hợp sẵn trong Laravel giúp quản lý và tối ưu hóa quy trình biên dịch và đóng gói tài nguyên web như CSS, JavaScript, và hình ảnh. Mix sử dụng Webpack dưới nền và cung cấp một cách dễ sử dụng để định nghĩa và quản lý các tác vụ biên dịch. Dưới đây là một số tính năng và cách sử dụng Laravel Mix: ### Các Tính Năng Chính của Laravel Mix: 1. **Đơn Giản và Dễ Sử Dụng:** Laravel Mix cung cấp một cú pháp đơn giản và dễ sử dụng để định nghĩa các tác vụ biên dịch. 2. **Hỗ Trợ Nhiều Loại Tài Nguyên:** Mix hỗ trợ biên dịch và đóng gói nhiều loại tài nguyên như Sass, Less, Stylus, ECMAScript 6, TypeScript, và nhiều hơn nữa. 3. **Tự Động Tạo Hash cho Tệp Tin:** Mix tự động thêm mã hash vào tên tệp tin để tránh việc lưu trữ cache khi có thay đổi. 4. **Tối Ưu Hóa và Tự Động Chuyển Nhượng:** Mix cung cấp chức năng tối ưu hóa tự động cho các tệp tin CSS và JavaScript, cũng như chức năng chuyển nhượng hình ảnh. 5. **Tích Hợp Nhanh Chóng với Laravel và Blade:** Mix tích hợp tốt với Laravel và cung cấp cú pháp Blade cho việc chèn các tệp tin đã biên dịch vào trong view. ### Cách Sử Dụng Laravel Mix: 1. **Cài Đặt Laravel Mix:** Chạy lệnh sau để cài đặt Laravel Mix: ```bash npm install ``` 2. **Định Nghĩa Các Tác Vụ Biên Dịch trong `webpack.mix.js`:** Mở tệp `webpack.mix.js` và định nghĩa các tác vụ biên dịch của bạn. Ví dụ: ```js mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .version(); ``` Trong ví dụ này, Mix sẽ biên dịch tệp `resources/js/app.js` và `resources/sass/app.scss`, sau đó đặt kết quả vào `public/js` và `public/css`. Hàm `.version()` thêm mã hash vào các tệp tin đã biên dịch. 3. **Chạy Tác Vụ Biên Dịch:** Sử dụng lệnh sau để chạy tác vụ biên dịch: ```bash npm run dev ``` Hoặc sử dụng lệnh sau để chạy biên dịch và theo dõi sự thay đổi: ```bash npm run watch ``` Nếu bạn đang ở trong môi trường sản xuất, bạn có thể sử dụng: ```bash npm run production ``` ### Kết Luận: Laravel Mix là một công cụ mạnh mẽ giúp đơn giản hóa quy trình biên dịch tài nguyên web trong Laravel. Nó cung cấp một cách dễ sử dụng và mạnh mẽ để quản lý tệp tin CSS, JavaScript, và hình ảnh trong ứng dụng Laravel của bạn.