У меня есть проект Phalcon с этой библиотекой: https://github.com/vlucas/phpdotenv. Эта библиотека предназначена для загрузки некоторых переменных среды из файла .env. Я создал такой файл и поместил его в свой проект.Переменные окружения, не работающие в конфигурации Phalcon
VERSION_NUMBER=3.14
DATABASE_HOST=localhost
DATABASE_NAME=test
DATABASE_USER=root
DATABASE_PASS=root
Я переписал мой loader.php
файл в коде ниже:
<?php
$loader = new \Phalcon\Loader();
/**
* We're a registering a set of directories taken from the configuration file
*/
$loader->registerNamespaces(array(
'Test\Models' => $config->application->modelsDir,
'Test\Controllers' => $config->application->controllersDir,
'Test\Forms' => $config->application->formsDir,
'Test\Classes' => $config->application->classesDir,
'Test\Classes\Excel' => $config->application->excelDir,
'Test' => $config->application->libraryDir
));
$loader->register();
// Use composer autoloader to load vendor classes
require_once __DIR__ . '/../../vendor/autoload.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->required(['DATABASE_HOST', 'DATABASE_NAME', 'DATABASE_USER', 'DATABASE_PASS']);
$dotenv->overload();
И в моем файле конфигурации я заменил ключи с переменными окружения:
'database' => array(
'adapter' => 'Mysql',
'host' => getenv('DATABASE_HOST'),
'username' => getenv('DATABASE_USER'),
'password' => getenv('DATABASE_PASS'),
'dbname' => getenv('DATABASE_NAME')
),
я могу эхо getenv('VERSION_NUMBER')
где Я хочу, и он работает каждый раз, но когда я пытаюсь использовать этот конфигурационный файл, переменные пусты. Что я делаю не так?
Почему бы не обнаружить текущий url в config.php и определить правила там? Я немного скептически настроен (если у кого-то был доступ к скриптам, который он также должен был бы делать с файлами .env), мое мнение –
Поскольку мне нравится идея установить глобальные переменные и потому что у нас есть много разных клиентов и, следовательно, URL-адреса, поэтому я думаю, что это более чистое решение. Я не делаю этого из-за так называемой «добавленной безопасности». – user4992124