Các phiên bản phpdotenv của Vlucas

Ngừng vật lộn với các khóa API rải rác, cùng nhau hack các công cụ cấu hình tự chế và tránh kiểm soát truy cập. Cung cấp cho nhóm của bạn một nguồn sự thật duy nhất với Doppler. Các nhà phát triển tốt nhất tự động hóa nỗi đau. Tạo tham chiếu đến các bí mật được sử dụng thường xuyên trong Doppler. Rồi khi họ cần

Xem phần mềm

  • trục trặc

    Glitch là một môi trường lập trình cộng tác tồn tại trong trình duyệt của bạn và triển khai mã khi bạn nhập. Sử dụng Glitch để xây dựng mọi thứ từ một trang web tĩnh tốt đến các ứng dụng Node đầy đủ. Bạn không bao giờ phải bắt đầu lại từ đầu. Chỉ cần bắt đầu phối lại một ứng dụng khởi động hiện có hoặc sao chép một dự án

    Xem phần mềm

  • hiện diện từ xa

    Telepresence để có quy trình phát triển Kubernetes nhanh hơn Telepresence cho phép các nhà phát triển ứng dụng Kubernetes chuyển mã đến sản xuất nhanh hơn và an toàn hơn, sử dụng các công cụ cục bộ mà họ cảm thấy thoải mái. Kết hợp với Ambassador Cloud, Telepresence là công cụ số 1 cho Kubernetes

    Tải các biến môi trường từ. env thành getenv[], $_ENV và $_SERVER một cách tự động. Đây là phiên bản PHP của Ruby dotenv gốc [1]. Trình tải tự động. /usr/share/php/Dotenv/autoload. php [1] https. //github. com/bkeepers/dotenv

    Tổng quan về phát hành

    Bạn không bao giờ nên lưu trữ thông tin đăng nhập nhạy cảm trong mã của mình. Lưu trữ cấu hình trong môi trường là một trong những nguyên lý của ứng dụng mười hai yếu tố. Mọi thứ có khả năng thay đổi giữa các môi trường triển khai – chẳng hạn như thông tin đăng nhập cơ sở dữ liệu hoặc thông tin đăng nhập cho các dịch vụ của bên thứ 3 – nên được trích xuất từ ​​mã thành các biến môi trường

    Về cơ bản, tệp

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 là một cách dễ dàng để tải các biến cấu hình tùy chỉnh mà ứng dụng của bạn cần mà không phải sửa đổi. htaccess hoặc máy chủ ảo Apache/nginx. Điều này có nghĩa là bạn sẽ không phải chỉnh sửa bất kỳ tệp nào bên ngoài dự án và tất cả các biến môi trường luôn được đặt bất kể bạn chạy dự án của mình như thế nào - Apache, Nginx, CLI và thậm chí cả máy chủ web tích hợp của PHP. Đó là CÁCH dễ dàng hơn tất cả các cách khác mà bạn biết để thiết lập các biến môi trường và bạn sẽ thích nó

    • KHÔNG chỉnh sửa máy chủ ảo trong Apache hoặc Nginx
    • KHÔNG thêm cờ
      $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
      $dotenv->load[];
      4 vào. tập tin htaccess
    • DỄ DÀNG di chuyển và chia sẻ các giá trị ENV cần thiết
    • TƯƠNG THÍCH với máy chủ web tích hợp của PHP và trình chạy CLI

    PHP dotenv là phiên bản PHP của Ruby dotenv gốc

    Cài đặt

    Cài đặt siêu dễ dàng thông qua Composer

    $ composer require vlucas/phpdotenv

    hoặc thêm nó bằng tay vào tệp

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    5 của bạn

    nâng cấp

    Chúng tôi tuân theo phiên bản ngữ nghĩa, có nghĩa là có thể xảy ra các thay đổi vi phạm giữa các bản phát hành chính. Chúng tôi có các hướng dẫn nâng cấp dành cho V2 lên V3, V3 lên V4 và V4 lên V5 tại đây

    Cách sử dụng

    Tệp

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 thường không được kiểm soát phiên bản vì nó có thể chứa các khóa và mật khẩu API nhạy cảm. Một tệp
    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    7 riêng biệt được tạo với tất cả các biến môi trường bắt buộc được xác định ngoại trừ những biến nhạy cảm, do người dùng cung cấp cho môi trường phát triển của riêng họ hoặc được thông báo ở nơi khác cho cộng tác viên dự án. Sau đó, các cộng tác viên của dự án sao chép độc lập tệp
    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    7 sang một
    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 cục bộ và đảm bảo tất cả các cài đặt đều chính xác cho môi trường cục bộ của họ, điền vào các khóa bí mật hoặc cung cấp các giá trị của riêng họ khi cần thiết. Trong cách sử dụng này, tệp
    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 phải được thêm vào tệp
    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->safeLoad[];
    1 của dự án để nó không bao giờ được các cộng tác viên cam kết. Việc sử dụng này đảm bảo rằng sẽ không có mật khẩu nhạy cảm hoặc khóa API nào trong lịch sử kiểm soát phiên bản, do đó ít có nguy cơ vi phạm bảo mật hơn và các giá trị sản xuất sẽ không bao giờ phải được chia sẻ với tất cả các cộng tác viên của dự án

    Thêm cấu hình ứng dụng của bạn vào tệp

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 trong thư mục gốc của dự án của bạn. Đảm bảo tệp
    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 được thêm vào tệp
    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->safeLoad[];
    1 của bạn để nó không bị mã đăng ký

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    3

    Bây giờ hãy tạo một tệp có tên

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    7 và kiểm tra tệp này trong dự án. Điều này phải có các biến ENV mà bạn cần đặt, nhưng các giá trị phải để trống hoặc chứa dữ liệu giả. Ý tưởng là để cho mọi người biết những biến nào được yêu cầu, nhưng không cung cấp cho họ các giá trị sản xuất nhạy cảm

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"

    Sau đó, bạn có thể tải

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 trong ứng dụng của mình bằng

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];

    Để chặn ngoại lệ được ném ra khi không có tệp

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9, bạn có thể

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->safeLoad[];

    Theo tùy chọn, bạn có thể chuyển tên tệp làm tham số thứ hai, nếu bạn muốn sử dụng tên khác ngoài

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9

    $ composer require vlucas/phpdotenv
    1

    Tất cả các biến được xác định hiện có sẵn trong các siêu toàn cục

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    1 và
    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    2

    $ composer require vlucas/phpdotenv
    4

    Putenv và Getenv

    Việc sử dụng

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    0 và
    $ composer require vlucas/phpdotenv
    12 không được khuyến khích mạnh mẽ do thực tế là các chức năng này không an toàn cho luồng, tuy nhiên vẫn có thể hướng dẫn PHP dotenv sử dụng các chức năng này. Thay vì gọi
    $ composer require vlucas/phpdotenv
    13, người ta có thể gọi
    $ composer require vlucas/phpdotenv
    14, điều này sẽ thêm
    $ composer require vlucas/phpdotenv
    15 đằng sau hậu trường. Các biến môi trường của bạn bây giờ sẽ có sẵn bằng cách sử dụng phương thức
    $ composer require vlucas/phpdotenv
    16, cũng như các biến siêu toàn cầu

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    1

    Biến lồng nhau

    Có thể lồng một biến môi trường trong một biến môi trường khác, hữu ích để giảm bớt sự lặp lại

    Điều này được thực hiện bằng cách gói một biến môi trường hiện có trong

    $ composer require vlucas/phpdotenv
    17 e. g

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    3

    Tính bất biến và tùy chỉnh kho lưu trữ

    Tính bất biến đề cập đến việc Dotenv có được phép ghi đè lên các biến môi trường hiện có hay không. Nếu bạn muốn Dotenv ghi đè lên các biến môi trường hiện có, hãy sử dụng

    $ composer require vlucas/phpdotenv
    18 thay vì
    $ composer require vlucas/phpdotenv
    19

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    6

    Đằng sau hậu trường, điều này đang hướng dẫn "kho lưu trữ" cho phép bất biến hay không. Theo mặc định, kho lưu trữ được định cấu hình để cho phép ghi đè các giá trị hiện có theo mặc định, điều này phù hợp nếu một người đang gọi phương thức "tạo" bằng cách sử dụng

    $ composer require vlucas/phpdotenv
    40 để xây dựng một kho lưu trữ tùy chỉnh hơn

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    30

    Ví dụ trên sẽ ghi các giá trị được tải vào

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    1 và
    $ composer require vlucas/phpdotenv
    42, nhưng khi nội suy các biến môi trường, chúng ta sẽ chỉ đọc từ
    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    1. Hơn nữa, nó sẽ không bao giờ thay thế bất kỳ biến nào đã được đặt trước khi tải tệp

    Bằng một ví dụ khác, người ta cũng có thể chỉ định một tập hợp các biến được phép liệt kê. Tức là chỉ các biến trong danh sách cho phép mới được tải

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    31

    Yêu cầu các biến được đặt

    PHP dotenv đã tích hợp chức năng xác thực, bao gồm cả việc thực thi sự hiện diện của một biến môi trường. Điều này đặc biệt hữu ích để cho mọi người biết bất kỳ biến bắt buộc rõ ràng nào mà ứng dụng của bạn sẽ không hoạt động nếu không có

    Bạn có thể sử dụng một chuỗi duy nhất

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    32

    Hoặc một mảng các chuỗi

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    33

    Nếu thiếu bất kỳ lọ ENV nào, Dotenv sẽ ném một

    $ composer require vlucas/phpdotenv
    44 như thế này

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    34

    Biến rỗng

    Ngoài việc chỉ yêu cầu một biến được đặt, bạn cũng có thể cần đảm bảo biến đó không trống

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    35

    Nếu biến môi trường trống, bạn sẽ nhận được Ngoại lệ

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    36

    Biến số nguyên

    Bạn cũng có thể cần đảm bảo rằng biến có giá trị nguyên. Bạn có thể làm như sau

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    37

    Nếu biến môi trường không phải là số nguyên, bạn sẽ nhận được Ngoại lệ

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    38

    Người ta có thể chỉ muốn thực thi các quy tắc xác thực khi một biến được đặt. Chúng tôi cũng ủng hộ điều này

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    39

    Biến Boolean

    Bạn có thể cần đảm bảo một biến ở dạng boolean, chấp nhận "true", "false", "On", "1", "Yes", "Off", "0" và "No". Bạn có thể làm như sau

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    0

    Nếu biến môi trường không phải là boolean, bạn sẽ nhận được Ngoại lệ

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    1

    Tương tự, người ta có thể viết

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    2

    Giá trị được phép

    Cũng có thể xác định một tập hợp các giá trị mà biến môi trường của bạn phải là. Điều này đặc biệt hữu ích trong các trường hợp chỉ có một số tùy chọn hoặc trình điều khiển thực sự được hỗ trợ bởi mã của bạn

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    3

    Nếu biến môi trường không có trong danh sách các giá trị được phép này, bạn sẽ nhận được một Ngoại lệ tương tự

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    4

    Cũng có thể định nghĩa một biểu thức chính quy mà biến môi trường của bạn phải là

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    5

    Bình luận

    Bạn có thể nhận xét tệp

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 của mình bằng ký tự
    $ composer require vlucas/phpdotenv
    46. e. g

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    6

    Phân tích cú pháp mà không cần tải

    Đôi khi, bạn chỉ muốn phân tích cú pháp tệp và giải quyết các biến môi trường lồng nhau, bằng cách cung cấp cho chúng tôi một chuỗi và trả lại một mảng cho bạn. Mặc dù điều này đã có thể thực hiện được, nhưng nó hơi khó sử dụng, vì vậy chúng tôi đã cung cấp một cách trực tiếp để thực hiện việc này

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    7

    Điều này hoàn toàn giống như

    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    8

    thôi, thay vì cung cấp thư mục để tìm tệp, bạn đã cung cấp trực tiếp nội dung tệp

    Ghi chú sử dụng

    Khi một nhà phát triển mới sao chép cơ sở mã của bạn, họ sẽ có thêm một bước để sao chép thủ công tệp

    $dotenv = Dotenv\Dotenv::createImmutable[__DIR__];
    $dotenv->load[];
    7 sang
    S3_BUCKET="devbucket"
    SECRET_KEY="abc123"
    9 và điền vào các giá trị của riêng họ [hoặc nhận bất kỳ giá trị nhạy cảm nào từ đồng nghiệp của dự án]

    Bảo vệ

    Nếu bạn phát hiện ra lỗ hổng bảo mật trong gói này, vui lòng gửi email tới security@tidelift. com. Mọi lỗ hổng bảo mật sẽ được khắc phục kịp thời. Bạn có thể xem chính sách bảo mật đầy đủ của chúng tôi tại đây

    Giấy phép

    PHP dotenv được cấp phép theo Giấy phép 3 khoản BSD

    Dành cho doanh nghiệp

    Có sẵn như là một phần của Đăng ký Tidelift

    Những người bảo trì của

    $ composer require vlucas/phpdotenv
    49 và hàng nghìn gói khác đang làm việc với Tidelift để cung cấp hỗ trợ thương mại và bảo trì cho các phần phụ thuộc nguồn mở mà bạn sử dụng để xây dựng các ứng dụng của mình. Tiết kiệm thời gian, giảm rủi ro và cải thiện tình trạng của mã, đồng thời trả tiền cho người duy trì chính xác các phụ thuộc mà bạn sử dụng. Tìm hiểu thêm

    Làm cách nào để sử dụng $_ ENV trong PHP?

    Sử dụng biến môi trường trong PHP .
    Các biến môi trường PHP cho phép tập lệnh của bạn tự động thu thập một số loại dữ liệu nhất định từ máy chủ. .
    Bạn có thể truy cập các biến này bằng mảng $_SERVER và $_ENV
    /home/00000/miền/ví dụ. com/html
    Tạo một phpinfo

    Làm thế nào để tải một. Tệp ENV trong PHP?

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

    Là gì. Tệp ENV trong PHP?

    Một. env là 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ế sao cho ứng dụng PHP của bạn sẽ phân tích chúng, bỏ qua Apache, NGINX và PHP-FPM . Việc sử dụng. env phổ biến trong nhiều khung công tác PHP như Laravel có hỗ trợ tích hợp để phân tích cú pháp.

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

    Sử dụng putenv[] . Trong yêu cầu tiếp theo, biến, nếu được đặt ngoài yêu cầu hiện tại, sẽ trở về giá trị ban đầu.

  • Chủ Đề