bcedric/symfony-workflow-dynamic-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bcedric/symfony-workflow-dynamic-bundle

Composer 安装命令:

composer require bcedric/symfony-workflow-dynamic-bundle

包简介

README 文档

README

Bundle qui permet de définir des workflows symfony de manière dynamique

Installation

  • Lancer la commande composer require bcedric/symfony-workflow-dynamic-bundle
  • Ajouter le bundle dans config/bundle.php :
    <?php

    return [
        // ...
        BCedric\SymfonyWorkflowDynamicBundle\BCedricSymfonyWorkflowDynamicBundle::class => ['all' => true],
    ];

  • Ajouter dans le fichier config/packages/doctrine.yaml:
doctrine:
    #...
    orm:
        #...
        mappings:
            #...
            BCedricSymfonyWorkflowDynamicBundle:
                is_bundle: true
                type: attribute
                prefix: 'BCedric\SymfonyWorkflowDynamicBundle\Entity'
                alias: SymfonyWorkflowDynamicBundle
  • Pour visualiser le workflow dans le profiler, ajouter dans le fichier config/services.yaml :
dynamic_workflow.entity_test:
       public: true
       class: Symfony\Component\Workflow\WorkflowInterface
       factory: ['@BCedric\SymfonyWorkflowDynamicBundle\Service\DynamicWorkflowServiceFactory', 'create']
       arguments:
          $target: 'App\Entity\EntityTest'
       tags:
          - { name: workflow }
          - { name: workflow.workflow }
          - { name: workflow.dynamic_loader, target: 'App\Entity\EntityTest' }

Entity

  • Pour créer une classe sur laquelle appliquer un workflow, celle-ci doit étendre la classe WorkflowEntity
class EntityTest extends WorkflowEntity
{
    ...
}
  • Pour créer une instance de cette classe veuillez utiliser le service WorkflowEntityFactory :
    ...
    $entity = $workflowEntityFactory->create(EntityTest::class);
    ...

API

Au sein de cette api, le paramètre target représente la classe sur laquelle s'applique le workflow.

WorkflowPlaceApiController

URL Description Méthode paramètres
/workflow/place/{target} Renvoie la liste des étapes du workflow GET
/workflow/place/{target} Créer une nouvelle étape sur le workflow POST {name: 'nom de l'étape'}
/workflow/place/{target}/{id} Modifie une étape du workflow PUT {name: 'nom de l'étape'}
/workflow/place/{target}/{id} Supprime une étape du workflow (/!\ cette fonction peut générer des erreurs si un objet utilise cette étape) DELETE

WorkflowTransitionApiController

URL Description Méthode paramètres
/workflow/transition/{target} Renvoie la liste des transitions du workflow GET
/workflow/transition/{target} Créer une nouvelle transition sur le workflow POST {name: 'nom de la transition', guard: 'expression de restriction de l'application de la transition utilisant la syntaxe du composant Expression Language de SF', from: [liste des noms des étapes de départ de la transition], to: [liste des noms des étapes de fin de la transition]}
/workflow/transition/{target}/{id} Modifie une nouvelle transition sur le workflow POST {name: 'nom de la transition', guard: 'expression de restriction de l'application de la transition utilisant la syntaxe du composant Expression Language de SF', from: [liste des noms des étapes de départ de la transition], to: [liste des noms des étapes de fin de la transition]}
/workflow/transition/{target}/{id} Supprime une nouvelle transition sur le workflow DELETE {name: 'nom de la transition', guard: 'expression de restriction de l'application de la transition utilisant la syntaxe du composant Expression Language de SF', from: [liste des noms des étapes de départ de la transition], to: [liste des noms des étapes de fin de la transition]}

WorkflowApiController

URL Description Méthode paramètres
/workflow Applique une transition PUT {id: 'id de l'objet à modifier', type: 'classe de l'objet à modifier', transition: 'transition à appliquer'}

统计信息

  • 总下载量: 14
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2026-05-05

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固