Я использую соединитель 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'
Тестирование с помощью чтения env var в TypoScript
page.40 = TEXT
page.40.value := getEnv(T3_NEW_ENV_VAR)
Вывод ДОЛЖЕН: УСПЕШНО ЗАГРУЖЕННЫЙ ENV VAR
Выход IS: пусто
Если я переместлю файл .env в основную директорию проекта, тот же TypoScript сможет прочитать env var и вывести правильное значение. Composer читает .env в основном каталоге проекта, а не в моем каталоге расширений.
Вопрос:
Можно ли требовать и использовать разъем dotenv в собственном расширении, независимо от основного проекта TYPO3?