在Symfonob娱乐下载y 4.3:新工作流程的改进
警告:这篇文章是关于一个不受支持的Symfony的版本。ob娱乐下载其中一些信息可能是过时了。阅读最近的Symfony文档ob娱乐下载。
在Syob娱乐下载mfony 4.3我们改善了工作流组件主要和次要的特性。这篇文章总结了最重要的。
添加了一个上下文<代码translate="no" class="notranslate">工作流程:申请()代码>< /a>
提供的
格雷戈勒Pineau
在# 29146。
当应用一个过渡,现在可以通过一个定制的<代码translate="no" class="notranslate">美元的上下文代码>(如执行转换的用户或当前日期):
1 2 3
美元工作流- >应用(美元文章,美元请求- >请求- >get (“过渡”),(“时间”= >日期(y-m-d H:我:年代”)));代码>< /pre>
在使用此功能之前,更新您的实体或任何其他对象支持的工作流程如下:
1 2 3 4
类文章{——公共职能setMarking($标记)+公共职能setMarking(标记上下文美元= [])
然后,更新工作流的配置使用<代码translate="no" class="notranslate">MethodMarkingStore代码>:
1 2 3 4 5 6 7
框架:工作流:文章:类型:工作流marking_store:类型:multiple_state+类型:方法
允许修改一个侦听器的上下文
提供的
格雷戈勒Pineau
在# 30902。
通过在每个调用上下文<代码translate="no" class="notranslate">- >应用()代码>可能是恼人的,将导致重复代码。
现在,您可以创建一个监听器,这对你:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31
类TransitionEventSubscriber实现了EventSubscriberInterface{私人美元tokenStorage;公共函数__construct(TokenStorageInterface美元tokenStorage){美元这- >tokenStorage =美元tokenStorage;}公共函数onWorkflowArticleTransition(TransitionEvent美元事件){美元上下文=美元事件- >getContext ();美元令牌=美元这- >tokenStorage- >getToken ();如果(美元令牌运算符TokenInterface) {美元用户=美元令牌- >getUser ();如果(美元用户运算符用户界面){美元上下文(“用户”]=美元用户- >getUsername ();}}美元事件- >setContext (美元上下文);}公共静态函数getSubscribedEvents(){返回[TransitionEvent::类= >“onWorkflowArticleTransition”,);}}代码>< /pre>
添加颜色倾倒工作流
提供的
亚历克西斯Lefebvre
在# 29538。
现在可以配置一个工作流将如何呈现多亏了<代码translate="no" class="notranslate">dump_style代码>元数据配置选项:
1 2 3 4 5 6 7 8 9 10
转换:提交:来自:开始:特拉维斯元数据:标题:过渡提交标题dump_style:标签:“我的自定义标签”arrow_color:“# 0088 ff”label_color:“红色”
这是自定义风格看起来像:
允许配置许多最初的地方
提供的
格雷戈勒Pineau
在# 30468和# 30890。
与状态机不同的是,当使用一个工作流可以在很多地方,有一个主题。这就是为什么现在可以配置多个组件最初的地方:
1 2 3 4 5
工作流程:文章:类型:工作流initial_marking:(foo,酒吧)地方:(foo,酒吧,一个,b,c,d]
简单的配置
提供的
格雷戈勒Pineau
在# 30551和# 30890。
正如上面提到的,受试者在状态机只能在一个地方,但它们可以在一个或多个州当使用工作流。然而,最初设计的工作流组件允许使用一个工作流与单个标记存储状态。这不是最好的决定,它添加了一些不必要的复杂性。
从4.3 Symfony开始ob娱乐下载,如果你的主题可以只在一个州,使用状态机。在这种情况下,属性(称为<代码translate="no" class="notranslate">标记代码>默认情况下)将一个字符串。如果这个主题可以在许多地方,使用工作流。在这种情况下,属性将一个数组。
由于这种简化,我们改进了DX(开发人员经验):
1 2 3 4 5 6 7 8 9 10 11 12
框架:工作流程:文章:类型:工作流marking_store:类型:方法#这是Symfony 5.0中的默认值ob娱乐下载属性:标记#这是默认值,可以省略任务:类型:state_machinemarking_store:类型:方法#这是Symfony 5.0中的默认值ob娱乐下载属性:状态
添加<代码translate="no" class="notranslate">workflow_transition_blockers ()代码>理解函数
提供的
格雷戈勒Pineau
在# 30908。
在Syob娱乐下载mfony 4.1中我们添加了一个功能,知道为什么过渡被阻塞。
在Syob娱乐下载mfony 4.3我们添加一个树枝函数构建拦截器列表:
1 2 3 4 5 6 7 8 9 10 11 12
<h2>出版了是因为:< /h2><ul>{%为拦截器在workflow_transition_blockers(文章中,“出版”)%}<李>{{拦截器。消息}}{#显示卫兵表达式#}{%如果blocker.parameters。定义表达式%}<代码>{{blocker.parameters。表达}}< /代码>{%endif%}< /李>{%endfor%}<ul>
评论
等不及要使用这些改进:)
Alex Rock is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now