我想在生产和开发应用程序上下文之间切换。在后端 [BE] 中哪里可以检查当前应用程序上下文并最终切换它?在以前的 Typo3 版本中,可以在安装模块中使用。请初学者友好回答。
3 回答
要检索应用程序上下文,您可以使用 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
文件。
TYPO3 监听一个环境变量来切换它自己的上下文。它应该设置在.htaccess
文件中:SetEnv TYPO3_CONTEXT Development
如果已设置,您可以getenv(TYPO3_CONTEXT)
在 php.ini 中访问它。