我正在使用 dotenv连接器来解析主项目目录中已经存在的.env文件。这行得通。
但是我在自己的扩展目录中将连接器与自己的.env一起使用时遇到问题。
扩展是根据作曲家的要求添加到主项目的:
"repositories": [
{ "type": "vcs", "url": "git@github.com:myself/myextension.git" }
],
"require": {
...
"myself/myextension": "dev-master"
},
我的扩展程序的作曲家结构:
"require": {
"typo3/cms-core": "^9.5",
"helhum/dotenv-connector": "^2.1"
},
"config": {
"vendor-dir": ".Build/vendor",
"bin-dir": ".Build/bin"
},
"extra": {
"helhum/dotenv-connector": {
"env-file": ".env"
},
"typo3/cms": {
"cms-package-dir": "{$vendor-dir}/typo3/cms",
"web-dir": ".Build/Web"
}
}
。 env文件,位于与扩展名composer.json相同的目录中:
typo3conf/ext/my_extension
-- composer.json
-- .env
.env文件的示例内容
T3_NEW_ENV_VAR='SUCCESSFULLY LOADED ENV VAR'
通过在TypoScript中读取env var进行测试
page.40 = TEXT
page.40.value := getEnv(T3_NEW_ENV_VAR)
应该输出:成功加载ENV变量
输出IS:空
如果将.env文件移动到主项目目录,则相同的TypoScript可以读取env var并输出正确的值。 Composer会在主项目目录中而不是在我的扩展目录中读取.env。
问题:
是否可以在自己的扩展中要求和使用dotenv连接器,而与主要的TYPO3项目无关?