Как проверить контекст приложения в Typo3 9?

Я бы хотел переключиться между контекстом приложения «Производство» и «Разработка». Где в бэкэнде [BE] есть возможность проверить текущий контекст приложения и в конечном итоге переключить его? В предыдущих версиях Typo3 это было возможно в модуле установки. Пожалуйста, начинающий дружелюбный ответ.

1

Решение

Для получения контекста приложения вы можете использовать функцию getApplicationContext из GeneralUtility:

\TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext()

Вы можете проверить, какой ApplicationContext используется с этими функциями:

$applicationContext = \TYPO3\CMS\Core\Utility\GeneralUtility::getApplicationContext();
$applicationContext->isDevelopment();
$applicationContext->isTesting();
$applicationContext->isProduction();

В качестве альтернативы вы можете использовать getenv('TYPO3_CONTEXT') чтобы получить строку ApplicationContext (которая, возможно, не существует, если не установлена ​​где-либо еще, поэтому я рекомендую использовать функции ApplicationContext из GeneralUtility).

Вы также можете проверить в TYPO3 Backend, проверив информацию PHP в модуле Environment в инструментах администратора, где вы должны найти категорию Environment,

Контекст приложения по умолчанию, если он не установлен чем-либо еще, Production,

Вы можете изменить его в файле .env с помощью TYPO3_CONTEXT=Development и загрузив его, например, с помощью пакета composer helhum / dotenv-connector или установив его в файле .htaccess с помощью SetEnv TYPO3_CONTEXT Development, Можно даже определить его в системе, но наиболее распространенный метод — через .env или .htaccess файл.

2

Другие решения

Есть переменная окружения, которую слушает TYPO3, чтобы переключить свой собственный контекст. Должно быть установлено что-то вроде .htaccess файл: SetEnv TYPO3_CONTEXT Development

Если он установлен, вы можете получить к нему доступ с помощью getenv(TYPO3_CONTEXT) в php.

2

Также я нашел то, что искал в BE:

введите описание изображения здесь

0
По вопросам рекламы [email protected]