Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typo3 无法使用通配符或子上下文键入脚本applicationContext条件_Typo3_Typoscript_Typo3 9.x - Fatal编程技术网

Typo3 无法使用通配符或子上下文键入脚本applicationContext条件

Typo3 无法使用通配符或子上下文键入脚本applicationContext条件,typo3,typoscript,typo3-9.x,Typo3,Typoscript,Typo3 9.x,由于TYPO3 9.5,LTS建议在打字条件下使用Symfony表达式语言 我在迁移它们时遇到了一些问题: 旧语法: 对于新的表达语言: 我尝试了以下方法但没有成功: 我没有找到任何例子。我不确定条件测试是否已经基于表达式语言 如果有人建议如何使用该功能来添加条件,那就太好了,就像以前一样您需要使用Symfony表达式语言的。通过这种方式,您可以使用正则表达式进行部分匹配: [applicationContext matches "/^Development/"] 这将匹配任何开发上下文。您需

由于TYPO3 9.5,LTS建议在打字条件下使用Symfony表达式语言

我在迁移它们时遇到了一些问题: 旧语法:

对于新的表达语言: 我尝试了以下方法但没有成功:

我没有找到任何例子。我不确定条件测试是否已经基于表达式语言

如果有人建议如何使用该功能来添加条件,那就太好了,就像以前一样

您需要使用Symfony表达式语言的。通过这种方式,您可以使用正则表达式进行部分匹配:

[applicationContext matches "/^Development/"]
这将匹配任何开发上下文。

您需要使用Symfony表达式语言的。通过这种方式,您可以使用正则表达式进行部分匹配:

[applicationContext matches "/^Development/"]
这将匹配任何开发上下文。

以下条件匹配从生产/Dev开始的任何applicationContext 为什么有这么多反斜杠?反斜杠\必须由字符串中的4个反斜杠\\\\和正则表达式中的8个反斜杠以Symfony表达式语言转义

自TYPO3 9 LTS起,作为打字脚本条件的基础

编辑2020-02:使用不同的正则表达式分隔符使TYPO3中的applicationContext条件的可读性更好: 而不是/我们可以用作正则表达式分隔符

以下是一些例子:

匹配开发应用程序上下文 匹配以生产/开发开始的applicationContext 匹配以生产/开发或生产/暂存开头的applicationContext 匹配从Production/Live开始的applicationContext 匹配从Production/Live开始的applicationContext和活动的TYPO3后端用户会话 匹配任何applicationContext,但以生产环境开头的应用程序除外 将applicationContext与值Production/Live/ClusterServer1精确匹配 以下条件与任何以Production/Dev开头的applicationContext匹配 为什么有这么多反斜杠?反斜杠\必须由字符串中的4个反斜杠\\\\和正则表达式中的8个反斜杠以Symfony表达式语言转义

自TYPO3 9 LTS起,作为打字脚本条件的基础

编辑2020-02:使用不同的正则表达式分隔符使TYPO3中的applicationContext条件的可读性更好: 而不是/我们可以用作正则表达式分隔符

以下是一些例子:

匹配开发应用程序上下文 匹配以生产/开发开始的applicationContext 匹配以生产/开发或生产/暂存开头的applicationContext 匹配从Production/Live开始的applicationContext 匹配从Production/Live开始的applicationContext和活动的TYPO3后端用户会话 匹配任何applicationContext,但以生产环境开头的应用程序除外 将applicationContext与值Production/Live/ClusterServer1精确匹配
在Type3 9中,您可以执行[applicationContext=Development/*]

在Type3 9中,您可以执行[applicationContext=Development/*]

此regexp匹配精确的字符串生产和任何以生产/开始的字符串,例如生产/暂存

匹配应用程序上下文是生产环境还是从生产环境开始/


此regexp匹配确切的字符串Production和任何以Production/开头的字符串,例如Production/Staging

匹配应用程序上下文是生产环境还是从生产环境开始/


有帮助吗?谢谢@MathiasBrodala的提示。根据您的信息,可以执行以下操作:[applicationContext matches/^Development/]当实际上下文为Development时匹配哪个/Docker使用不同的正则表达式分隔符(如下面的答案中所示)更容易。是的,听起来很合理,感谢您再次查看。是否有帮助?感谢@MathiasBrodala的提示。根据您的信息,可以执行以下操作:[applicationContext matches/^Development/]在实际上下文为Development时进行匹配/Docker使用不同的正则分隔符(如下面的答案中所示)更容易。是的,听起来很合理,感谢您再次查看。抱歉,但是在TYPO3 9 LTS中不推荐使用旧的条件样式。除此之外,如果要使用旧条件,则必须禁用旧打字脚本条件的功能标志。抱歉,在TYPO3 9 LTS中不推荐使用旧条件样式。除此之外,如果你想使用旧的条件,你必须禁用旧打字条件的功能标志。我的答案是基于TYPO3 9 LTS中的实现的有效解决方案。我想知道有什么问题。谁否决了我的回答:请留下评论。我的答案是基于TYPO3 9 LTS中的实现的有效解决方案。我想知道它出了什么问题。它不一样。我的regexp与确切的字符串生成和任何以
生产,如生产/分段。Josef的示例都没有这样做。但是在TYPO3中,不能有类似于Productions的上下文,regexp可以像Mathias的回答中那样简单。这不一样。我的regexp与确切的字符串Production和任何以Production/开头的字符串匹配,例如Production/Staging。约瑟夫的例子中没有一个能做到这一点,但是在TYPO3中,不可能有像Productions这样的上下文,regexp可以像Mathias的答案那样简单。
[applicationContext matches "/^Development/"]
[applicationContext matches '/^Production\\\\\\\\/Dev/']
[applicationContext matches "#^Development#"]
[applicationContext matches "#^Production/Dev#"]
[applicationContext matches "#^Production/(Dev|Staging)#"]
[applicationContext matches "#^Production/Live#"]
[applicationContext matches "#^Production/Live#" && getTSFE().isBackendUserLoggedIn()]
[not (applicationContext matches "#Production#")]
[applicationContext == "Production/Live/ClusterServer1"]
[applicationContext matches '#^Production(/|$)#']