2
我添加了此庫的Phalcon項目:https://github.com/vlucas/phpdotenv。該庫旨在從.env文件加載一些環境變量。我創建了這樣的文件並將其放入我的項目中。環境變量在Phalcon Config中不起作用
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();
而且在我的配置文件I替換爲環境變量鍵:
'database' => array(
'adapter' => 'Mysql',
'host' => getenv('DATABASE_HOST'),
'username' => getenv('DATABASE_USER'),
'password' => getenv('DATABASE_PASS'),
'dbname' => getenv('DATABASE_NAME')
),
我可以附和getenv('VERSION_NUMBER')
哪裏我希望它每次都能正常工作,但是當我嘗試使用這個配置文件時,變量是空的。我究竟做錯了什麼?
爲什麼不檢測config.php中的當前url並在那裏定義規則?我有點懷疑(如果有人有權訪問腳本,他也必須使用.env文件),我的意見 –
因爲我喜歡能夠設置全局變量的想法,並且因爲我們有很多不同的客戶端,所以我認爲這是更清潔的解決方案。我沒有這樣做,因爲所謂的「增加的安全性」。 – user4992124