用于 Symfony 应用程序的 BPMN 查看器和建模器

安装: 130

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v1.0.0 2022-01-06 13:23 UTC

This package is auto-updated.

Last update: 2024-09-06 19:43:56 UTC


README

Total Downloads Daily Downloads UX BPMN

UX BPMN 是一个集成 bpmn.io 库的 Symfony 扩展包,用于 Symfony 应用程序。它提供了一个查看器和建模器。

您可以查看 演示 以进行测试。

安装

UX BPMN 需要 PHP 7.4.5+ 和 Symfony 4.4+。

使用 Composer 和 Symfony Flex 安装此扩展包

composer require scopeli/ux-bpmn

# Don't forget to install the JavaScript dependencies as well and compile
yarn install --force
yarn encore dev

使用方法

要使用 UX BPMN 查看器和构建器,请在 PHP 中创建以下内容

// ...
use Scopeli\UxBpmn\Model\Modeler;
use Scopeli\UxBpmn\Model\Viewer;

class BpmnController extends AbstractController
{
    const BPMN_FILE = 'example.bpmn';
    
    /**
     * @Route("/show", name="bpmn_show", methods={"GET"}) 
     */
    public function show(): Response
    {    
        return $this->render('bpmn/show.html.twig', [
            'viewer' => new Viewer(Viewer::TYPE_DEFAULT, file_get_contents(self::BPMN_FILE)),
        ]);
    }
    
    /**
     * @Route("/edit", name="bpmn_edit", methods={"GET"}) 
     */
    public function edit(): Response
    {
        $modeler = new Modeler(Modeler::TYPE_DEFAULT, file_get_contents(self::BPMN_FILE));
        $modeler->setConfig([
            'saveUrl' => $this->generateUrl('bpmn_save'),
        ]);
    
        return $this->render('bpmn/edit.html.twig', [
            'modeler' => $modeler,
        ]);
    }
    
    /**
     * @Route("/save", name="bpmn_save", methods={"POST"}) 
     */
    public function save(Request $request): Response
    {
        $data = json_decode($request->getContent());
        
        file_put_contents(self::BPMN_FILE, $data->xml);
        
        return new Response(null, Response::HTTP_NO_CONTENT);
    }
}

之后,您可以在 Twig 中显示查看器和建模器(需要 Symfony Webpack Encore

{# bpmn/show.html.twig #}
{{ render_bpmn_viewer(viewer) }}
{# bpmn/edit.html.twig #}
{{ render_bpmn_modeler(modeler) }}