Học Laravel – Bài 1: Tìm hiểu và cài đặt

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-app

Hoặ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-app

Sau khi project được khởi tạo, chạy server bằng lệnh CLI serve:

cd example-app
php artisan serve

Sau đó 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.sqlite

Update 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 migrate

Trong 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.sqlite

Chạy lại migrate:

php artisan optimize:clear
// then
php artisan migrate
// or
php artisan migrate:fresh

Cá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 down

Bật lại:

php artisan up

Ở chế độ bảo trì, không có queued jobs nào được xử lý.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *