Làm cách nào để lấy dữ liệu env trong Laravel?

Khi bạn đang phát triển một ứng dụng web, bạn thường có các môi trường khác nhau để kiểm tra ứng dụng web của mình. Ví dụ

  • Địa phương hoặc Phát triển
  • dàn dựng
  • Sản lượng

Bạn cũng có thể có các nhà phát triển khác nhau làm việc trên cùng một ứng dụng và họ có thể cần đặt môi trường của mình khác với những người khác. Do đó, laravel cung cấp cho bạn. env hoạt động trên các môi trường khác nhau

Ghi chú. . tệp env không nên được cam kết với dự án git

Tệp 

DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
0 mặc định của Laravel chứa một số giá trị cấu hình phổ biến có thể khác nhau tùy thuộc vào việc ứng dụng của bạn đang chạy cục bộ hay trên máy chủ web sản xuất

Laravel cũng cung cấp cho bạn. env. tệp ví dụ nơi bạn chỉ có thể đặt các khóa giữ chỗ để các nhà phát triển hoặc môi trường khác nhau có thể sử dụng các giá trị khác nhau tùy theo nhu cầu của họ

Không thêm thông tin nhạy cảm trong. env hoặc. env. tệp ví dụ sẽ tạo ra sự cố bảo mật và một số tin tặc có thể dễ dàng đánh hơi loại dữ liệu này từ kho lưu trữ của bạn

Xét sơ đồ sau

Bạn có ba môi trường web khác nhau để kiểm tra ứng dụng của mình. Ví dụ. dev/local, dàn dựng hoặc sản xuất. Mỗi môi trường của bạn đang sử dụng khác nhau. env vì chúng tôi không cam kết. env, bạn phải tạo tệp này theo cách thủ công trên từng môi trường

Bây giờ, chúng tôi đã đặt biến APP_ENV của mình trên từng môi trường với các giá trị khác nhau. Giả sử bạn muốn chạy logic nhất định khi env là dàn hoặc cục bộ, bạn có thể sử dụng hàm laravel sau để kiểm tra môi trường

if [App::environment['prduction']] {
    // The environment is production
    // Run your production env specific logic here
}

if [App::environment[['local', 'staging']]] {
    // The environment is either local OR staging...
    // Run your ocal OR staging env specific logic here
}

Cách lấy khóa cụ thể từ. env trong Laravel 8?

Giả sử bạn có các khóa/giá trị sau được xác định trong. tập tin env

DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​

Bây giờ, nếu bạn muốn sử dụng một trong các khóa trên trong bộ điều khiển của mình hoặc bất kỳ lớp hoặc tệp nào khác, bạn có thể sử dụng hàm sau để tìm nạp giá trị

# print the value of DB_HOST
echo env['DB_HOST', false];

Giá trị thứ hai được chuyển đến hàm 

DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
1 là "giá trị mặc định". Giá trị này sẽ được trả về nếu không có biến môi trường nào tồn tại cho khóa đã cho

Các tệp cấu hình trong Laravel 8 là gì?

Các tệp cấu hình này cho phép bạn định cấu hình những thứ như thông tin kết nối cơ sở dữ liệu, thông tin máy chủ thư của bạn cũng như nhiều giá trị cấu hình cốt lõi khác

Tất cả các tệp cấu hình cho khung Laravel được lưu trữ trong thư mục 

DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
2

Tập tin cấu hình sử dụng. biến env để tìm nạp cấu hình động. Ví dụ. cấu hình cơ sở dữ liệu của bạn có thể khác trên cục bộ, dàn dựng hoặc trên máy chủ sản xuất tùy thuộc vào những gì được lưu trữ bên trong. env trong mỗi môi trường

Nếu bạn mở config/database. php, nó có thể trông giống như sau

Chú ý dòng sau

# if DB_CONNECTION variable is defined in .env
# file than it uses that value otherwise it uses mysql
# as default value 
env['DB_CONNECTION', 'mysql'];

Làm cách nào để tìm nạp cấu hình trong Laravel 8?

Bây giờ, bạn đã biết tất cả các tệp cấu hình được lưu trữ trong thư mục cấu hình trong dự án laravel 8. Bạn đang tự hỏi làm cách nào để tìm nạp các cấu hình được xác định trong các tệp cấu hình này

Trong tên tệp cấu hình laravel được sử dụng làm khóa và sau đó bất kỳ biến nào được xác định trong tệp đó đều có thể được truy cập bằng cách sử dụng ký hiệu dấu chấm. Ví dụ

# fetch database default config
$databaseDefaultKeyValue = config['database.default'];

# fetch current app timezone
$timezone = config['app.timezone', 'Asia/Seoul'];

Cũng có thể bạn cũng có thể ghi đè các giá trị này một cách nhanh chóng bằng cách sử dụng ví dụ sau

# override what is defined in config/app.php => timezone key
config[['app.timezone' => 'America/Chicago']];

Làm cách nào để cache cấu hình Laravel 8?

Để tăng cường ứng dụng laravel của bạn bằng cách lưu trữ cấu hình đã lưu trong bộ nhớ cache, bạn có thể sử dụng lệnh sau

# create cache copy of configurations
php artisan config:cache​

Làm cách nào để ẩn lỗi trong môi trường sản xuất?

Tùy chọn 

DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
0 trong tệp cấu hình 
DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
1 của bạn xác định lượng thông tin về một lỗi thực sự được hiển thị cho người dùng. Theo mặc định, tùy chọn này được đặt để tôn trọng giá trị của biến môi trường 
DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
2, được lưu trữ trong tệp 
DB_PORT=3306
DB_HOST=mysql
DB_USERNAME=sail
DB_CONNECTION=mysql
DB_PASSWORD=password
DB_DATABASE=example_app​
0 của bạn

Theo tài liệu về ấu trùng

Để phát triển cục bộ, bạn nên đặt biến môi trường APP_DEBUG thành true. Trong môi trường sản xuất của bạn, giá trị này phải luôn sai. Nếu biến được đặt thành true trong quá trình sản xuất, bạn có nguy cơ để lộ các giá trị cấu hình nhạy cảm cho người dùng cuối của ứng dụng

Làm cách nào để lấy dữ liệu từ tệp env?

Phương thức load_dotenv từ dotenv cung cấp chức năng đọc dữ liệu từ một. tập tin env. Bạn không cần cài đặt gói os vì nó được tích hợp sẵn trong Python.

Làm cách nào để nhận giá trị env trong Laravel 8?

env['VARIABLE_NAME']; . chỉ cần đặt cùng một dòng trong của bạn. .
Google_API_Key=XXXXX. Truy cập đặt biến trong. .
env['Google_API_Key'];
@if[env['APP_ENV'] == 'local'] Khớp @endif. Bộ điều khiển
if[env['APP_ENV'] == 'local'] { echo 'Match';

Làm cách nào để sử dụng các giá trị env trong Laravel?

Sau khi giá trị môi trường được xác định trong. env có thể được sử dụng bởi các tệp cấu hình được xác định trong thư mục config/ hoặc có thể được sử dụng trực tiếp trong laravel . Tất cả các biến được liệt kê trong tệp này sẽ được tải vào $_ENV PHP super-global khi ứng dụng của bạn nhận được yêu cầu.

Làm cách nào để lấy biến từ env?

Trên thanh tác vụ Windows, nhấp chuột phải vào biểu tượng Windows và chọn Hệ thống. Trong cửa sổ Cài đặt, bên dưới Cài đặt liên quan, bấm Cài đặt hệ thống nâng cao. Trên tab Nâng cao, nhấp vào Biến môi trường

Chủ Đề