如何在 Typo3 9 中检查应用程序上下文?

How to check application context in Typo3 9?

我想在生产和开发应用程序上下文之间切换。在后端 [BE] 的哪个位置可以检查当前应用程序上下文并最终切换它?在 Typo3 的早期版本中,可以在安装模块中使用。请初学者友善回答。

TYPO3 监听一个环境变量来切换它自己的上下文。它应该设置在 .htaccess 文件中:SetEnv TYPO3_CONTEXT Development

如果已设置,您可以在php中使用getenv(TYPO3_CONTEXT)访问它。

要检索应用程序上下文,您可以使用 GeneralUtility 中的 getApplicationContext 函数:

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

您可以检查哪些 ApplicationContext 与这些函数一起使用:

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

或者,您可以使用 getenv('TYPO3_CONTEXT') 检索 ApplicationContext 字符串(如果未在其他任何地方设置,则该字符串可能不存在,这就是为什么我建议使用 GeneralUtility 中的 ApplicationContext 函数)。

您还可以通过检查管理工具中环境模块中的 PHP 信息来检查 TYPO3 后端,您应该在其中找到类别 Environment

如果没有设置任何其他内容,默认的应用程序上下文是 Production

您可以在 .env 文件中使用 TYPO3_CONTEXT=Development 更改它并加载它,例如使用 composer 包 helhum/dotenv-connector 或通过在 .htaccess 文件中设置它 SetEnv TYPO3_CONTEXT Development.甚至可以在系统中定义它,但最常见的方法是通过 .env.htaccess 文件。

我还在 BE 中找到了我要找的东西: