2

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

4

3 回答 3

4

要检索应用程序上下文,您可以使用 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文件。

于 2018-11-21T14:50:31.687 回答
2

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

在此处输入图像描述

于 2018-11-23T13:05:39.897 回答
2

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

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

于 2018-11-21T14:02:20.637 回答