Trong chương trước, chúng ta đã thấy rằng các tệp cấu hình cơ bản của Laravel được bao gồm trong thư mục cấu hình . Trong chương này, chúng ta hãy thảo luận về các danh mục có trong cấu hình.
Cấu hình môi trường
Các biến môi trường là những biến cung cấp danh sách các dịch vụ web cho ứng dụng web của bạn. Tất cả các biến môi trường được khai báo trong tệp .env bao gồm các tham số cần thiết để khởi tạo cấu hình.
Theo mặc định, tệp .env bao gồm các tham số sau:
APP_ENV = local
APP_DEBUG = true
APP_KEY = base64:ZPt2wmKE/X4eEhrzJU6XX4R93rCwYG8E2f8QUA7kGK8 =
APP_URL = http://localhost
DB_CONNECTION = mysql
DB_HOST = 127.0.0.1
DB_PORT = 3306
DB_DATABASE = homestead
DB_USERNAME = homestead
DB_PASSWORD = secret
CACHE_DRIVER = file
SESSION_DRIVER = file
QUEUE_DRIVER = sync
REDIS_HOST = 127.0.0.1
REDIS_PASSWORD = null
REDIS_PORT = 6379
MAIL_DRIVER = smtp
MAIL_HOST = mailtrap.ioMAIL_PORT = 2525
MAIL_USERNAME = null
MAIL_PASSWORD = null
MAIL_ENCRYPTION = null
Điểm quan trọng
Trong khi làm việc với các tệp cấu hình cơ bản của Laravel, cần lưu ý những điểm sau:
- Tệp .env không nên được cam kết với quyền kiểm soát nguồn ứng dụng, vì mỗi nhà phát triển hoặc người dùng có một số cấu hình môi trường được xác định trước cho ứng dụng web.
- Đối với các tùy chọn sao lưu, nhóm phát triển nên bao gồm tệp .env.example , tệp này phải chứa cấu hình mặc định.
Truy xuất các biến môi trường
Tất cả các biến môi trường được khai báo trong tệp .env có thể được truy cập bởi các hàm env-helper, hàm này sẽ gọi tham số tương ứng. Các biến này cũng được liệt kê vào biến toàn cục $ _ENV bất cứ khi nào ứng dụng nhận được yêu cầu từ người dùng cuối. Bạn có thể truy cập biến môi trường như hình dưới đây
'env' => env('APP_ENV', 'production'),
Các hàm env-helper được gọi trong tệp app.php có trong thư mục cấu hình . Ví dụ đã cho ở trên đang gọi tham số cục bộ cơ bản.
Truy cập giá trị cấu hình
Bạn có thể dễ dàng truy cập các giá trị cấu hình ở bất kỳ đâu trong ứng dụng bằng cách sử dụng chức năng trợ giúp cấu hình chung. Trong trường hợp nếu các giá trị cấu hình không được khởi tạo, các giá trị mặc định sẽ được trả về. Ví dụ: để đặt múi giờ mặc định, mã sau được sử dụng:
config(['app.timezone' => 'Asia/Kolkata']);
Lưu cấu hình vào bộ nhớ đệm
Để tăng hiệu suất và thúc đẩy ứng dụng web, điều quan trọng là phải lưu vào bộ đệm tất cả các giá trị cấu hình. Lệnh để lưu vào bộ nhớ đệm các giá trị cấu hình là:
config:cache
Ảnh chụp màn hình sau đây cho thấy bộ nhớ đệm theo cách tiếp cận có hệ thống
Chế độ bảo trì
Đôi khi bạn có thể cần cập nhật một số giá trị cấu hình hoặc thực hiện bảo trì trên trang web của mình. Trong những trường hợp như vậy, việc giữ nó ở chế độ bảo trì sẽ giúp bạn dễ dàng hơn. Các ứng dụng web như vậy được giữ ở chế độ bảo trì, hãy ném một ngoại lệ cụ thể là MaintenanceModeException với mã trạng thái là 503.
Bạn có thể bật chế độ bảo trì trên ứng dụng web Laravel của mình bằng lệnh sau:
php artisan down
Ảnh chụp màn hình sau đây cho thấy ứng dụng web trông như thế nào khi nó ngừng hoạt động
Sau khi hoàn thành công việc cập nhật và bảo trì khác, bạn có thể tắt chế độ bảo trì trên ứng dụng web của mình bằng lệnh sau:
php artisan up
Bây giờ, bạn có thể thấy rằng trang web hiển thị đầu ra với chức năng thích hợp và mô tả rằng chế độ bảo trì hiện đã bị loại bỏ như hình dưới đây
Bây giờ, bạn có thể thấy rằng trang web hiển thị đầu ra với chức năng thích hợp và mô tả rằng chế độ bảo trì hiện đã bị loại bỏ như hình dưới đây –
Laravel – định tuyến
Trong Laravel, tất cả các yêu cầu đều được ánh xạ với sự trợ giúp của các tuyến. Định tuyến cơ bản định tuyến yêu cầu đến các bộ điều khiển liên quan. Chương này thảo luận về định tuyến trong Laravel.
Định tuyến trong Laravel bao gồm các danh mục sau:
- Định tuyến cơ bản
- Thông số tuyến đường
- Các tuyến đường được đặt tên
Định tuyến cơ bản
Tất cả các tuyến ứng dụng được đăng ký trong tệp app / lines.php . Tệp này cho Laravel biết về các URI mà nó sẽ phản hồi và bộ điều khiển liên quan sẽ cung cấp cho nó một lệnh gọi cụ thể. Lộ trình mẫu cho trang chào mừng có thể được hiển thị trong ảnh chụp màn hình dưới đây
Route::get ('/', function () {
return view('welcome');});
Thí dụ
Quan sát ví dụ sau để hiểu thêm về Định tuyến –
app / Http / route.php
<?php
Route::get('/', function () {
return view('welcome');
});
resource / view / welcome.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel</title>
<link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet"
type = "text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 96px;
}
</style>
</head>
<body>
<div class = "container">
<div class = "content">
<div class = "title">Laravel 5.1</div>
</div>
</div>
</body>
</html>
Cơ chế định tuyến được hiển thị trong hình dưới đây:
Bây giờ chúng ta hãy hiểu chi tiết các bước liên quan đến cơ chế định tuyến –
Bước 1 – Ban đầu, chúng ta nên thực thi URL gốc của ứng dụng.
Bước 2 – Bây giờ, URL được thực thi phải khớp với phương thức thích hợp trong tệp route.php . Trong trường hợp hiện tại, nó phải khớp với phương thức và URL gốc (‘/’). Điều này sẽ thực thi chức năng liên quan.
Bước 3 – Hàm gọi tài nguyên tệp mẫu / views / welcome.blade.php. Tiếp theo, hàm gọi hàm view () với đối số ‘welcome’ mà không sử dụng blade.php . Điều này sẽ tạo ra đầu ra HTML như được hiển thị trong hình ảnh bên dưới:
Tham số tuyến đường
Đôi khi trong ứng dụng web, bạn có thể cần phải nắm bắt các thông số được truyền với URL. Đối với điều này, bạn nên sửa đổi mã trong tệp route.php .
Bạn có thể nắm bắt các tham số trong tệp route.php theo hai cách như đã thảo luận ở đây –
Các thông số bắt buộc
Các thông số này là những thông số cần được bắt buộc phải nắm bắt để định tuyến ứng dụng web. Ví dụ: điều quan trọng là phải nắm bắt số nhận dạng của người dùng từ URL. Điều này có thể thực hiện được bằng cách xác định các thông số tuyến đường như hình dưới đây
Route::get('ID/{id}',function($id) {
echo 'ID: '.$id;
});
Các thông số tùy chọn
Đôi khi các nhà phát triển có thể tạo ra các tham số như là tùy chọn và có thể với việc bao gồm ? sau tên tham số trong URL. Điều quan trọng là giữ giá trị mặc định được đề cập dưới dạng tên tham số. Hãy xem ví dụ sau đây cho biết cách xác định một tham số tùy chọn
Route::get('user/{name?}', function ($name = 'TutorialsPoint') { return $name;});
Ví dụ trên kiểm tra xem giá trị có khớp với TutorialsPoint hay không và theo đó định tuyến đến URL đã xác định.
Các tuyến đường được đặt tên
Các tuyến đường được đặt tên cho phép tạo các tuyến đường thuận tiện. Chuỗi các tuyến có thể được chỉ định bằng cách sử dụng phương pháp tên trên định nghĩa tuyến. Đoạn mã sau đây cho thấy một ví dụ để tạo các tuyến đường được đặt tên với bộ điều khiển:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
Bộ điều khiển người dùng sẽ gọi hàm showProfile với tham số là hồ sơ . Các tham số sử dụng phương thức tên để xác định tuyến đường