Я пытаюсь использовать API SendGrid, для которого мне нужно получить доступ к переменной среды, которую я добавил в свой корневой каталог, используя следующую команду.
echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env
Это создало sendgrid.env
файл в моей корневой папке, добавлен sendgrid.env
к моему .gitignore
файл и добавил SENDGRID_API_KEY
в качестве переменной среды.
Тем не менее, PHP getenv('SENDGRID_API_KEY')
ключ ничего не возвращает, а PHP phpinfo()
не отражает SENDGRID_API_KEY
в качестве переменной среды.
Подразумевается, что вы должны использовать другой пакет для чтения .env
файлы. Eсть образец на их официальном сайте, который использует Dotenv
класс для загрузки содержимого файлов в среду:
<?php
require 'vendor/autoload.php';
Dotenv::load(__DIR__);
$sendgrid_apikey = getenv('YOUR_SENDGRID_APIKEY');
Тем не менее, они даже не объясняют, откуда приходит класс. Видимо, они означают, что вы должны установить vlucas/phpdotenv
пакет. Обратите внимание, что в текущей версии этого пакета load
метод не является статичным (это на самом деле был статичным в ранних версиях):
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
Других решений пока нет …