PHP đọc tệp env

Bài viết này được cung cấp như một phép lịch sự. Cài đặt, định cấu hình và khắc phục sự cố ứng dụng của bên thứ ba nằm ngoài phạm vi hỗ trợ được cung cấp bởi [mt] Media Temple. Vui lòng dành chút thời gian để xem lại Tuyên bố hỗ trợ

Sử dụng và ví dụ

Bạn có thể truy cập các biến này bằng cách sử dụng $_SERVER$_ENV arrays.

Ví dụ: nếu bạn muốn sử dụng biến

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
9 được đề cập ở trên, bạn có thể tạo một biến trong tập lệnh PHP của mình tương tự như sau

Tên tệp. môi trường. php

$site_path_var = $_SERVER["SITE_HTMLROOT"];

Điều này sẽ tạo ra một biến có giá trị tương tự như sau

$ touch .env
$ echo "PHP_DEBUG=true" > .env
0

Nếu bạn muốn kiểm tra đầu ra của biến, hãy thêm câu lệnh echo vào tập lệnh PHP của bạn. Ví dụ

Tên tệp. môi trường. php

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;

Bây giờ hãy truy cập tập lệnh của bạn trong trình duyệt của bạn để xem đầu ra

GHI CHÚ

$ touch .env
$ echo "PHP_DEBUG=true" > .env
1 và
$ touch .env
$ echo "PHP_DEBUG=true" > .env
2 là các mảng siêu toàn cục PHP. Chúng không cần phải được khai báo là biến toàn cục. Đừng KHÔNG đặt dòng sau vào tệp của bạn.

Tên tệp. môi trường. php

global $_SERVER;

Công dụng thực tế

Trên Grid, việc sử dụng một vài biến môi trường được chọn sẽ đặc biệt hữu ích vì ba lý do. Đầu tiên, nếu bạn quyết định sử dụng lại tập lệnh trên một miền khác trên Lưới, bạn sẽ không phải thay đổi tất cả các biến của mình. Thứ hai, các biến thường thuận tiện hơn so với đường dẫn dài và tên máy chủ được sử dụng cho kiến ​​trúc Grid. Thứ ba, cân bằng tải lưới đôi khi yêu cầu các trang web và cơ sở dữ liệu được chuyển sang các máy vật lý khác nhau, điều này có thể thay đổi môi trường của bạn. Đây không phải là một sự cố phổ biến, nhưng nó là một phần thiết yếu của chức năng Grid

  • $site_path_var = $_SERVER["SITE_HTMLROOT"];
    echo $site_path_var;
    0

    Đường dẫn đầy đủ đến tài liệu gốc của trang web của bạn, trả về kết quả như /home/00000/domains/example. com/html.
  • $site_path_var = $_SERVER["SITE_HTMLROOT"];
    echo $site_path_var;
    1
    - Tên máy chủ cơ sở dữ liệu nội bộ, trả về đầu ra như internal-db. s00000. máy chủ lưới. com.

Danh sách đầy đủ các biến được cung cấp

Tạo một phpinfo. php để xem tất cả các biến do Media Temple cung cấp [mt] của bạn. Xem phần "Làm cách nào tôi có thể tạo tệp phpinfo. php?" để biết chi tiết, chú ý đến phần Biến PHP của trang để biết thông tin liên quan.

Đặt biến của riêng bạn

Trong PHP

Trên Lưới, bạn có thể đặt các biến môi trường của riêng mình sẽ tồn tại trong phiên tạo ra chúng. Ví dụ: nếu bạn muốn sử dụng biến môi trường tùy chỉnh trong tập lệnh, bạn có thể thêm các dòng sau để tạo rồi sử dụng biến

Bạn có thể nhận được các biến môi trường của mình bằng cách sử dụng các hàm PHP tích hợp sẵn, chẳng hạn như

$ touch .env
$ echo "PHP_DEBUG=true" > .env
5 hoặc
$ touch .env
$ echo "PHP_DEBUG=true" > .env
6. Nhưng bạn có biết rằng bạn có thể làm điều đó một cách tinh tế, lấy giá trị của biến môi trường theo kiểu dữ liệu PHP phù hợp với một thư viện mạnh mẽ không?

Trong suốt bài viết này, chúng ta sẽ sử dụng thư viện

$ touch .env
$ echo "PHP_DEBUG=true" > .env
7 để tải các biến môi trường từ một tệp bên ngoài

Cài đặt phụ thuộc với thư viện vlucas/phpdotenv

Trước tiên, bạn cần cài đặt các phụ thuộc. Đơn giản chỉ cần gõ này trong thiết bị đầu cuối của bạn

________số 8

Bây giờ, chúng ta cần tạo một tệp

$ touch .env
$ echo "PHP_DEBUG=true" > .env
8 và đặt biến môi trường đầu tiên vào đó

$ touch .env
$ echo "PHP_DEBUG=true" > .env

Hãy đọc biến môi trường và đổ giá trị này ra màn hình

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
1

Bạn có thấy rằng kiểu dữ liệu của giá trị này là bool chứ không phải chuỗi không?

Hãy chuyển sang bước tiếp theo và khám phá thêm các tính năng

Lưu cấu hình dưới dạng một mảng

Bạn nghĩ gì về việc lưu cấu hình của mình trong một biến môi trường duy nhất dưới dạng một mảng?

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
2____13

tốt một. Bạn có thấy rằng bạn có thể xác định cấu trúc dữ liệu phức tạp cho các biến môi trường của mình không?

Nếu muốn, bạn có thể đọc tài liệu của

$ touch .env
$ echo "PHP_DEBUG=true" > .env
9 để hiểu có bao nhiêu loại dữ liệu bạn có thể sử dụng ở đó, với các ví dụ và chi tiết về những gì thư viện hỗ trợ

Mã hóa một ứng dụng thực tế

Trong phần tiếp theo, chúng ta sẽ mã hóa một ứng dụng thực sử dụng cùng một khái niệm được hiển thị bên dưới để nhận cấu hình. Chúng tôi sẽ thực hiện việc tạo một trình bao bọc cho

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
10

Chà, chúng tôi sẽ sử dụng Rclone để kết nối trên Amazon Cloud Drive và liệt kê mọi tệp từ đó trong một thư mục cụ thể. Hãy thực hiện bất cứ nơi nào bạn muốn của ý tưởng này. Ví dụ: có thể tải các tệp của bạn lên Amazon Cloud Drive, có thể là các tệp như bản sao lưu cơ sở dữ liệu

Rclone là gì?

Rclone là một chương trình dòng lệnh có thể được sử dụng để đồng bộ hóa các tệp từ nguồn sang đích. Nó hỗ trợ một số nhà cung cấp như

  • Google Drive

  • amazon S3

  • Dropbox

  • Lưu trữ đám mây của Google

  • Ổ đĩa Amazon

  • Microsoft OneDrive

  • SFTP

  • Hệ thống tập tin cục bộ

Để xem danh sách đầy đủ các nhà cung cấp được hỗ trợ, vui lòng đọc thêm trên trang chủ của Rclone

Cách cài đặt rclone trên máy của bạn

Làm theo tài liệu chính thức sẽ giải thích cách cài đặt Rclone trên máy của bạn [nó hoạt động trên Windows, Linux và OS X, vì vậy đừng lo lắng]. Nếu bạn muốn cài đặt nó trên máy chủ của mình, vâng, bạn có thể làm điều đó mà không gặp vấn đề gì

Cách định cấu hình Rclone

Bạn sẽ cần định cấu hình Rlone cho bất kỳ nhà cung cấp đám mây nào mà bạn muốn sử dụng với nó. Trong trường hợp này, chúng tôi sẽ chỉ định cấu hình tài khoản Amazon Cloud Drive

Trước khi tiếp tục, hãy đảm bảo rằng bạn có Rclone trên biến hệ điều hành PATH của mình và chạy lệnh sau để định cấu hình Rclone để quản lý tệp trên ổ đĩa đám mây của bạn

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
6

Bạn sẽ được hỏi về bí danh. Theo quy ước của hướng dẫn này, tôi giả sử rằng chúng ta đang sử dụng bí danh

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
11 và bạn có một thư mục cụ thể trong thư mục gốc có tên là
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
12

Điền thông tin theo câu hỏi. Sau đó, khi bạn chạy lệnh này, bạn sẽ thấy tất cả các tệp trong thư mục gốc trên đám mây của mình

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
9

Lệnh này sẽ in ra bảng điều khiển mọi tệp có trong thư mục Codeship của Amazon Cloud Drive của bạn. Nếu nó hoạt động, hãy tiếp tục

Đăng ký tài khoản Codeship miễn phí

Tạo dự án PHP của chúng tôi

Chúng tôi sẽ làm theo một số bước để ứng dụng của chúng tôi hoạt động. Nếu bạn có bất kỳ nghi ngờ nào về bất kỳ bước nào, vui lòng để lại nhận xét hoặc gửi tin nhắn trực tiếp cho tôi. tôi muốn nói chuyện với bạn về nó

Người quản lý phụ thuộc

Composer là công cụ quản lý phụ thuộc mà chúng tôi sẽ sử dụng. Hãy tạo một dự án PHP mới và nhập một số phụ thuộc bằng Composer

Khi bạn nhập lệnh đầu tiên

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
13, bạn sẽ được hỏi về cấu hình của dự án mới của mình

global $_SERVER;
1

Còn một việc nữa cần hoàn thành với cấu hình nhà soạn nhạc. Chúng ta cần nói không gian tên của ứng dụng của chúng ta là gì. Để thực hiện việc này, hãy thêm trường

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
14 vào tệp
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
15 như thế này

global $_SERVER;
4

Nhà soạn nhạc sẽ đăng ký trình tải tự động PSR-4 cho không gian tên

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
16

Tạo các biến môi trường của chúng tôi

Các biến môi trường của chúng tôi sẽ giữ cấu hình của ứng dụng dòng lệnh của chúng tôi. Ví dụ, đây là điểm mà bạn có thể thay đổi đường dẫn thành nhị phân

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
10 hoặc thay đổi cấu hình của bất kỳ thứ gì bạn đang thấy ở trên

Hãy tạo tệp biến môi trường

$ touch .env
$ echo "PHP_DEBUG=true" > .env
8 trong thư mục gốc của dự án của chúng ta và điền vào đó một số cấu hình hữu ích cho phạm vi của ứng dụng này

global $_SERVER;
8

Đó là nó.

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
19 có nội dung
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
20 và nội dung này sẽ được sử dụng để truy xuất thông tin về cấu hình cụ thể của bạn mà chúng tôi đã thực hiện trong
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
21

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
22 có một
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
23 sẽ trỏ đến đường dẫn cài đặt nhị phân của công cụ
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
10 trên máy của bạn. Ngoài ra,
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
25 có một
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
26 sẽ được sử dụng để gửi các lệnh Rclone với các đối số mặc định này

Lệnh Danh sách

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
27 sẽ là lớp chịu trách nhiệm liệt kê tất cả các tệp nằm trong thư mục
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
12 của chúng tôi trên Amazon Cloud Drive. Đầu tiên, tạo thư mục
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
29 trong thư mục dự án của bạn. Bên trong nó, tạo tệp
$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
30

$ touch .env
$ echo "PHP_DEBUG=true" > .env
0

Nội dung của

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
30 sẽ là

$ touch .env
$ echo "PHP_DEBUG=true" > .env
1

Cách chạy ứng dụng dòng lệnh này

Điều cuối cùng chúng ta cần làm là tạo một tệp điểm đầu vào [hàm

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
32 của chúng ta]

$ touch .env
$ echo "PHP_DEBUG=true" > .env
2

Điền vào tệp này với nội dung sau

$ touch .env
$ echo "PHP_DEBUG=true" > .env
3

Để chạy ứng dụng này, chỉ cần nhập nó vào thiết bị đầu cuối của bạn

$ touch .env
$ echo "PHP_DEBUG=true" > .env
4

Nếu bạn có bất kỳ tệp nào trên thư mục

$site_path_var = $_SERVER["SITE_HTMLROOT"];
echo $site_path_var;
12 trong Amazon Cloud Drive của mình, những tệp đó sẽ được liệt kê trên bảng điều khiển của bạn

Vâng, tôi biết nó thực sự đơn giản, nhưng tôi muốn chia sẻ cách bạn có thể sử dụng các biến môi trường trong dự án của mình. Tại sao không nghĩ về các giá trị dữ liệu phức tạp?

Phần kết luận

Như bạn có thể thấy, chúng ta có thể sử dụng các biến môi trường để làm rất nhiều việc. Bạn có thể tăng chất lượng công việc của mình chỉ bằng cách đặt cấu hình trên các biến môi trường để thay đổi hành vi của một thành phần trong luồng ứng dụng của bạn mà không thay đổi dù chỉ một dòng mã nguồn của bạn

Bạn không cần phải chuyển đổi các loại của mình;

Hãy cho tôi biết nếu bạn gặp vấn đề khi làm theo hướng dẫn từng bước này và cách thức hoặc thời điểm bạn nghĩ đến việc sử dụng tính năng này cho dự án tiếp theo của mình

Một hạn chế duy nhất mà tôi có thể thấy khi sử dụng các biến môi trường là đặt thông tin đăng nhập cơ sở dữ liệu/API của bạn, vì vậy hãy cẩn thận về điều đó

Làm sao để truy cập. env trong PHP?

php function DBConnect[] { $user = getenv["DB_USER"]; . biến môi trường. php. environment-variables.

tôi có thể sử dụng. env trong PHP?

Một. env là một tệp văn bản thuần túy chứa các định nghĩa biến môi trường được thiết kế để ứng dụng PHP của bạn sẽ phân tích cú pháp chúng, bỏ qua Apache, NGINX và PHP-FPM. Việc sử dụng. tệp env phổ biến trong nhiều khung công tác PHP chẳng hạn như Laravel có hỗ trợ tích hợp để phân tích cú pháp .

Làm cách nào để chuyển biến môi trường sang PHP?

Không có cách nào để đặt các biến môi trường từ dòng lệnh dành riêng cho việc thực thi tập lệnh bằng cách chuyển các tùy chọn sang tệp nhị phân PHP. Bạn có một vài lựa chọn. Đặt biến chung trên hệ thống . Đặt biến trên dòng lệnh trước khi gọi tập lệnh.

$_ env trong PHP là gì?

$_ENV là một mảng kết hợp siêu toàn cục khác trong PHP . Nó lưu trữ các biến môi trường có sẵn cho tập lệnh hiện tại. $HTTP_ENV_VARS cũng chứa thông tin tương tự, nhưng không phải là siêu toàn cầu và hiện không được dùng nữa. Các biến môi trường được nhập vào không gian tên chung.

Chủ Đề