用于 Symfony 应用程序的 BPMN 查看器和建模器
v1.0.0
2022-01-06 13:23 UTC
Requires
- php: >=7.4.5
- ext-json: *
- symfony/config: ^4.4|^5.0|^6.0
- symfony/dependency-injection: ^4.4|^5.0|^6.0
- symfony/http-kernel: ^4.4|^5.0|^6.0
- symfony/twig-bundle: ^4.4|^5.0|^6.0
Requires (Dev)
- symfony/framework-bundle: ^4.4|^5.0|^6.0
- symfony/var-dumper: ^4.4|^5.0|^6.0
Conflicts
- symfony/flex: <1.13
This package is auto-updated.
Last update: 2024-09-06 19:43:56 UTC
README
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) }}