Tại sao chọn Laravel?
- Dependency injection
- Unit testing
- Queues
- Real-time events
- Laravel Vapor
Tìm hiểu trước khi học Laravel:
- Composer
- Node & NPM
Tạo dự án đầu tiên:
composer create-project laravel/laravel example-appHoặc cài đặt sẵn Laravel installer thông qua Composer:
composer global require laravel/installer
// tạo dự án bằng lệnh new
laravel new example-appSau khi project được khởi tạo, chạy server bằng lệnh CLI serve:
cd example-app
php artisan serveSau đó truy cập http://localhost:8000
Cấu hình khởi tạo:
Tất cả các cấu hình ở trong thư mục config.
Cấu hình môi trường:
Trong file .env, file này không được commit lên source control.
Database và migration:
Cấu hình database trong file .env. Có thể sử dụng SQLite cho những dự án nhỏ. Tạo file database.sqlite:
touch database/database.sqliteUpdate file .env:
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=Chạy migrate để tạo database:
php artisan migrateTrong windows bạn có thể gặp lỗi như sau:
SQLSTATE[HY000]: General error: 26 file is not a database (SQL: select * from sqlite_master where type = 'table' and name = migrations)Fix lỗi như sau:
Cấu hình DB_DATABASE đường dẫn chính xác đến file sqlite:
DB_DATABASE=E:/wamp64/www/lv-app/database/database.sqliteChạy lại migrate:
php artisan optimize:clear
// then
php artisan migrate
// or
php artisan migrate:freshCác bước tiếp theo
- Request Lifecylcle: vòng đời request
- Configuration: cấu hình
- Directory Structure: cấu trúc thư mục
- Frontend
- Service container
- Facades
Học thêm Laravel Bootcamp để tìm hiểu cách tạo ra 1 dự án Laravel đơn giản từ đầu.
Cấu hình trong Laravel:
Tất cả các cấu hình của Laravel nằm trong thư mục config. Bạn có thể lướt qua các file để xem cấu hình.
Bạn có thể có nhiều cấu hình khác nhau tùy thuộc vào môi trường ứng dụng đang chạy. Laravel sử dụng thư viện DotEnv PHP. File .env của Laravel chứa 1 số cấu hình thông dụng. Những giá trị này được truy xuất từ các file trong thư mục config sử dụng hàm env.
File .env không được commit lên source control. Bạn cũng có thể mã hóa file .env.
Truy xuất cấu hình môi trường:
Tất cả các biến được list trong file .env sẽ được load vào biến global PHP $_ENV. Bạn cũng có thể sử dụng hàm env để truy xuất các giá trị trong file cấu hình:
'debug' => env('APP_DEBUG', false)Xác định môi trường hiện tại:
use Illuminate\Support\Facades\App;
$environment = App::environment();if (App::environment('local')) {
// The environment is local
}
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
}Truy xuất các giá trị cấu hình sử dụng hàm config. Có thể truyền giá trị mặc định khi cấu hình không tồn tại:
$value = config('app.timezone');
// Retrieve a default value if the configuration value does not exist...
$value = config('app.timezone', 'Asia/Seoul');Để set cấu hình lúc đang chạy:
config(['app.timezone' => 'America/Chicago']);Cache cấu hình:
Sử dụng lệnh php artisan config:cache để gộp tất cả các cấu hình lại thành 1 file, tối ưu hiệu suất ứng dụng. Bạn chỉ cache khi deploy ứng dụng ở môi trường product.
Một khi cấu hình đã được cache, ứng dụng sẽ không load file .env nữa, cho nên function env chỉ trả về các cấu hình môi trường ngoài ứng dụng.
Lệnh php artisan config:clear để xóa cache.
Debug Mode:
Option debug trong config/app.php mặc định lấy giá trị từ APP_DEBUG trong file .env. Ở local dev, APP_DEBUG được set là true. Ở môi trường production, bạn cần phải set thành false.
Chế độ bảo trì:
php artisan downBật lại:
php artisan upỞ chế độ bảo trì, không có queued jobs nào được xử lý.
