工作流组件
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
工作流组件
工作流组件提供工具来管理一个工作流或有限状态机。
3.2
工作流组件是在Symfony 3.2中引入的。ob娱乐下载
安装
1
美元作曲家需要symfony /工作流ob娱乐下载:^ 3.4
请注意
如果你安装这个组件之外的Symfony应用程序,你必须要求ob娱乐下载供应商/ autoload.php
文件在你的代码,使作曲家提供的类加载机制。读这篇文章为更多的细节。
创建一个工作流
工作流组件给你一个面向对象的方法定义一个过程或一个你的对象的生命周期经历。每一个步骤或阶段的过程被称为的地方。您还做定义转换描述的行动从一个地方到另一个地方。
一组和转换创建了一个地方定义。一个工作流需要一个定义
和写美国的对象(即一个实例MarkingStoreInterface)。
考虑下面的例子为一个博客。一篇文章可以有一个预定义的状态(“草案”,“审核”,“拒绝”,“发表”)。在工作流中,这些状态的地方。您可以定义工作流是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
使用ob娱乐下载\组件\工作流\DefinitionBuilder;使用ob娱乐下载\组件\工作流\MarkingStore\SingleStateMarkingStore;使用ob娱乐下载\组件\工作流\过渡;使用ob娱乐下载\组件\工作流\工作流;美元definitionBuilder=新DefinitionBuilder ();美元定义=美元definitionBuilder- >addPlaces ([“草案”,“审查”,“拒绝”,“发布”])/ /转换定义了一个独特的名字,一个来源和目的地的地方- >addTransition (新过渡(“to_review”,“草案”,“审查”))- >addTransition (新过渡(“发布”,“审查”,“发布”))- >addTransition (新过渡(“拒绝”,“审查”,“拒绝”))- >build ();美元标记=新SingleStateMarkingStore (的现状后);美元工作流=新工作流(美元定义,美元标记);
3.3
流畅的界面DefinitionBuilder
类是在Symfony 3.3中引入的。ob娱乐下载之前你必须调用addPlaces ()
,addTransition ()
和build ()
方法分别。
的工作流
现在可以帮助你决定什么行为是允许在一篇博客文章中根据什么的地方这是在。这将让你的域逻辑在一个地方而不是遍布你的应用程序。
当你定义多个工作流应该考虑使用注册表
,这是一个对象存储和提供不同的工作流。注册中心还将帮助您决定是否一个工作流支持的对象你想使用它:
1 2 3 4 5 6 7 8 9 10
使用Acme\实体\博客;使用Acme\实体\欧宝平台是合法的吗通讯;使用ob娱乐下载\组件\工作流\注册表;美元blogWorkflow=……美元欧宝平台是合法的吗newsletterWorkflow=……美元注册表=新注册表();美元注册表- >add (美元blogWorkflow,还::类);美元注册表- >add (美元欧宝平台是合法的吗newsletterWorkflow,通欧宝平台是合法的吗迅::类);
使用
当你有一个配置注册表
与你的工作流,您可能使用它如下:
1 2 3 4 5 6 7 8 9 10
/ /……美元帖子=新BlogPost ();美元工作流=美元注册表- >get (美元帖子);美元工作流- >可以(美元帖子,“发布”);/ /错误美元工作流- >可以(美元帖子,“to_review”);/ /正确的美元工作流- >应用(美元帖子,“to_review”);美元工作流- >可以(美元帖子,“发布”);/ /正确的美元工作流- >getEnabledTransitions (美元帖子);/ /(“发布”,“拒绝”)
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。