我尝试在我的 TYPO3 项目中使用helhum/dotenv-connector 。
我做了以下事情:
我的composer.json
:
{
"require": {
"typo3/cms": "^8.5",
"helhum/dotenv-connector": "1.0.0",
"helhum/typo3-console": "^4.1"
},
"extra": {
"helhum/typo3-console": {
"install-extension-dummy": false
},
"typo3/cms": {
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": "web"
},
"helhum/dotenv-connector": {
"env-dir": "",
"allow-overrides": true,
"cache-dir": "var/cache"
}
}
}
然后我跑了
composer install
之后,我使用命令设置 TYPO3
php vendor/bin/typo3cms install:setup
这应该与以“正常”方式进行安装类似。
之后,我在.env
我的旁边放了一个composer.json
这.env
包含以下内容:
TYPO3_CONTEXT="Development"
TYPO3__DB__database="dotenvconnector"
TYPO3__DB__host="127.0.0.1"
TYPO3__DB__password="root"
TYPO3__DB__port="3306"
TYPO3__DB__username="root"
web/typo3conf/LocalConfiguration.php
然后我使用typo3_console-command删除了有关数据库的所有信息
php vendor/bin/typo3cms configuration:remove DB
然后我又跑composer install
又跑composer update
。
现在在浏览器中调用TYPO3时,它一直告诉我
尚未配置名为“默认”的请求数据库连接。
那我错过了什么?显然 my.env
根本没有被解析或使用。
仅供参考:Cachefile 写在 var/cache 中,内容如下:
<?php
putenv('TYPO3__DB__database=dotenvconnector');
$_ENV['TYPO3__DB__database'] = 'dotenvconnector';
$_SERVER['TYPO3__DB__database'] = 'dotenvconnector';
putenv('TYPO3__DB__host=localhost');
$_ENV['TYPO3__DB__host'] = 'localhost';
$_SERVER['TYPO3__DB__host'] = 'localhost';
putenv('TYPO3__DB__password=root');
$_ENV['TYPO3__DB__password'] = 'root';
$_SERVER['TYPO3__DB__password'] = 'root';
putenv('TYPO3__DB__port=3306');
$_ENV['TYPO3__DB__port'] = '3306';
$_SERVER['TYPO3__DB__port'] = '3306';
putenv('TYPO3__DB__username=root');
$_ENV['TYPO3__DB__username'] = 'root';
$_SERVER['TYPO3__DB__username'] = 'root';