Использование соединителя dotenv с собственным файлом .env в расширении TYPO3 - PullRequest
0 голосов
/ 07 марта 2019

Я использую соединитель 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?

...