格雷戈勒Pineau 法比安效力

提供的
格雷戈勒Pineau,<一个href="https://connect.sensiolabs.com/profile/fabpot">法比安效力在<一个href="https://github.com/symfony/symfony/pull/11882"># 11882

工作流是一个基本元素在很多组织的结构。他们描述的操作序列,可以重复执行提供一些服务(例如购买一个产品在一个电子商务应用程序),处理一些信息(如发布一些内容在CMS应用程序),等等。

在Sy欧宝娱乐app下载地址mfony 3.2中我们添加了一个新的工作流组件帮助你定义的工作流应用程序。从技术上讲,组件实现“工作流网”的一个子类<一个href="https://en.wikipedia.org/wiki/Petri_net" class="reference external" rel="external noopener noreferrer" target="_blank">佩特里网

在实践中,创建一个工作流定义“州”和“转换”(两种状态之间可能发生的事件)。下面的示例显示了一个最小的工作流发布一些内容:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
框架:工作流程:article_publishing:marking_store:类型:property_accessor支持:- - - - - -AppBundle \实体\文章地方:- - - - - -草案- - - - - -解释清楚- - - - - -发表转换:解释清楚:来自:草案:解释清楚发布:来自:解释清楚:发表

现在,您可以开始使用这个工作流模板和控制器。例如,在一个模板:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
{#工作流名称是可选的时候只是一个工作流类#}{%如果workflow_can(文章中,“出版”)%}<一个href=“…”>发表文章< /一个>{%endif%}{#如果不止一个工作流定义为“条”类#}{%如果workflow_can(文章中,“发布”,“article_publishing”) %}<一个href=“…”>发表文章< /一个>{%endif%}{#……#}{%过渡workflow_transitions(文章)%}<一个href=“…”>{{transition.name}}< /一个>{%其他的%}对本文没有行动。{%endfor%}

在一个控制器,你可以得到任何定义工作流通过它的名称由于工作流Symfony创建的注册表,然后应用任何给定的转换:欧宝娱乐app下载地址

1 2 3 4 5 6 7 8 9 10 11
使用欧宝娱乐app下载地址\组件\工作流\异常\LogicException;公共函数reviewAction(文章美元文章){/ / try / catch是必要的,因为这种转变可能已经被应用试一试{美元- >get (“workflow.article_publishing”)- >应用(美元文章,解释清楚的);}(LogicException美元e){/ /……}}

如果你想执行自定义逻辑过渡情况发生时,你可以把听众在事件引发的组件。

看看<一个href="https://github.com/lyrixx/SFLive-Paris2016-Workflow" class="reference external" rel="external noopener noreferrer" target="_blank">这个演示应用程序为一个完整的示例工作流组件在操作和查看<一个href="https://github.com/fduch/workflow-bundle" class="reference external" rel="external noopener noreferrer" target="_blank">这个GitHub项目为非官方的端口组件的Symfony 2.3 +版本。欧宝娱乐app下载地址

帮助Symfony欧宝娱乐app下载地址项目!

与任何开源项目一样,<一个href="//www.oldmanjams.com/doc/current/contributing.html">贡献代码或文档来帮助欧宝体育电话是最常见的方式,但我们也有一个广泛的<一个href="//www.oldmanjams.com/sponsor">赞助机会