Đây là bài viết trong series Larask Gist. Toàn bộ source code của bài viết này bạn có thể xem tại đây: Larask Gist
#Cài đặt
Trong series này mình sẽ dùng Laragon để hướng dẫn. Vì vậy nếu bạn nào chưa cài đặt Laragon hãy cài đặt ngay theo hướng dẫn. (nếu máy bạn đủ khả năng ảo hóa, hãy sử dụng Homestead thay thế)
Dùng Laragon tạo một project mới tên là gist
. Chờ để Laragon (thực tế là composer) tải và cài đặt Laravel. Mở trình duyệt và truy cập vào gist.dev
. Nếu xuất hiện màn hinh chào mừng của Laravel là bạn đã thành công.
#Cấu hình cơ bản
#Đổi tên app (namespace)
Việc đầu tiên cần làm sau khi cài ứng dụng là đổi tên. Thay vì sử dụng tên mặc định là App
chúng ta sẽ đổi nó thành Gist
php artisan app:name Gist
Application name set!
Từ bây giờ, toàn bộ ứng dụng của chúng ta sẽ có namespace là Gist
#Cấu hình các thông số
Ngày nay, git là version control thông dụng. Và bạn sẽ không muốn các thông tin như cấu hình database, mật khẩu, API key được công khai (ví dụ trên Github hay Bitbucket khi push code). Và bạn cũng không muốn phải sửa các thông số này thường xuyên khi deploy ứng dụng do sự khác nhau giữa các môi trường làm việc (ví dụ local và production).
Laravel tích hợp sẵn .dotenv
để giúp bạn làm thực hiện việc này dễ dàng nhất. Mỗi mỗi trường sẽ có 1 file .env
ở thư mục gốc lưu các thông tin quan trọng.
Cách hoạt động của file .env
rất đơn giản. Hãy mở file /config/database.php
các bạn sẽ thấy dòng này :
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
File .env
đi kèm sau khi cài Laravel thành công sẽ có nội dung như sau:
APP_ENV=local
APP_DEBUG=true
APP_KEY=rTPeTeKYrhiu61RyvFeyGkbZF2KS2Fe2
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
Lưu ý: Luôn luôn giữ bí mật APP_KEY của bạn
Laravel dùng hàm env('DB_HOST', 'localhost')
để lấy giá trị DB_HOST
trong file .env
. Nếu không có giá trị này, giá trị mặc định là localhost
sẽ được dùng. Các bạn có thể bỏ trống biến thứ 2 của hàm env
và khi đó giá trị mặc định trả về sẽ là null
/**
* Gets the value of an environment variable. Supports boolean, empty and null.
*
* @param string $key
* @param mixed $default
* @return mixed
*/
function env($key, $default = null) {
// some thing here
}
Trong file .env
chúng ta sẽ cấu hình các mục
DB_HOST=localhost
DB_DATABASE=gist
DB_USERNAME=root
DB_PASSWORD=
Phù hợp với cấu hình mysql của bạn. (nếu bạn sử dụng PostgreSQL, SQLite,...) Hãy thay đổi default
cho phù hợp trong config/database.php
Kiểm tra kết nối database thành công bằng cách chạy lệnh sau vào Cmder
php artisan tinker
>>> DB::Statement("SHOW TABLES")
true
Lưu ý: SHOW TABLES
là câu lệnh của MySQL để hiển thị tất cả table trong database hiện tại (gist), nếu các bạn sử dụng các loại database khác. Câu lệnh này phải được thay đổi cho phù hợp
DB::Statement($command)
Dùng để chạy một câu query.
#Cài ide-helper package
Để các IDE có thể "hiểu" được những gì chúng ta đang code và có các type hint thì chúng ta cần cài package hỗ trợ. Ở đây mình sẽ dùng barryvdh/laravel-ide-helper .
Trong Cmder:
composer require barryvdh/laravel-ide-helper --dev
Option --dev để composer hiểu chúng ta chỉ cần package này khi develop.
Mở file 'Gist\Providers\AppServiceProvider'
trong method register()
chúng ta sẽ thêm vào :
if ($this->app->environment() == 'local') {
$this->app->register('Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider');
}
Tiếp tục trong Cmder:
php artisan ide-helper:generate
Lệnh trên sẽ tạo file _ide_helpers.php trong thư mục gốc giúp các IDE có thể hiểu được Laravel. Bạn cần phải chạy lệnh trên mỗi lần cài đặt thêm package mới. Nhưng bạn cài đặt package bằng Composer phải không? Hãy để Composer làm điểu đó cho bạn.
Mở file composer.json
và sửa post-update-cmd
giống như bạn dưới (chính xác thứ tự các dòng nhé)
"post-update-cmd":[
"php artisan clear-compiled",
"php artisan ide-helper:generate",
"php artisan optimize"
]
Cuối cùng là add file _ide_helper.php
vào cuối file .gitignore
để cho git không theo dõi file này, tránh các rắc rối về commit/merge về sau.
#Kết luận
Nếu bạn đọc được đến đây thì bạn đã sẵn sàng để chinh phục Laravel rồi đấy.