common-gateway/sim-xml-to-zgw-bundle

Symfony扩展包,用于将SimXML消息转换为ZGW对象

0.1.1 2024-06-25 09:29 UTC

README

此存储库用于创建PHP Symfony flex扩展包。Common Gateway生态系统使用此模板以快速开发,扩展Gateway功能。

第一部分关于安装插件。后一部分是关于自定义插件以扩展Common Gateway功能。

使用Common Gateway管理用户界面进行安装

一旦正确设置扩展包(如本存储库),Common Gateway可以无需额外配置即可发现扩展包。转到“插件”选项卡以搜索、选择和安装插件。

使用PHP命令进行安装

要执行以下命令,您需要Composer或已安装PHP和Composer的dockerized安装。

终端和根目录中的Composer方法

用于安装插件

$composer require common-gateway/sim-xml-to-zgw-bundle:dev-main

用于安装模式

`$php bin/console commongateway:install common-gateway/sim-xml-to-zgw-bundle

终端和根目录中的dockerized方法

用于安装插件

$docker-compose exec php composer require common-gateway/sim-xml-to-zgw-bundle:dev-main

用于安装模式

$docker-compose exec php bin/console commongateway:install common-gateway/sim-xml-to-zgw-bundle

创建您的扩展包

本节是为希望构建插件以扩展Common Gateway功能而不添加核心代码库的开发者准备的。

以下知识假设和/或已安装

Composer Packagist Docker Schema.jsonCommon Gateway的基本了解

使用此模板

此模板用于快速Symfony扩展包开发,并作为基于自定义插件的模式。遵循以下步骤,在45分钟或更短的时间内创建您的插件

  1. GitHub上登录

  2. 使用此模板

  3. 命名您的扩展包(驼峰式)。扩展包需要以Bundle结尾,符合Symfony 命名约定

  4. 点击绿色按钮从模板创建存储库

  5. 更新文件名和命名空间以适应您的需求

    • 打开composer.json,并将其更改为适合您的名称。第一个单词应该是命名空间,第二个是扩展包的名称。

    注意:这是短横线命名法。另请参阅:命名您的包

    • 检查自动加载字段是否已相应设置。
    • 打开SimXMLToZGWBundle.php并更改Bundle namenamespace。命名空间应与composer.json中的包名称相同,但为驼峰式。因此,common-gateway/sim-xml-to-zgw-bundle变为CommonGateway/SimXMLToZGWBundle
    • 相应地重命名/Service/ActionHandler(或如果不使用则删除)。
    • /DependencyInjection/SimXMLToZGWExtension.php 重命名为你的 BundleNameExtension.php
    • 重命名 /Resources/config/services.yaml 命名空间

添加模式

您可以从您的 json 模式 中作为实体从您的 /Schema 文件夹加载到通用网关中,并使用这些模式来处理基于您模式的对象。

您可以添加现有的模式或创建自己的模式并将它们添加到 /Schema 文件夹。这里有一个示例,可以在 /Schema/example.json 中查看。

以下属性是必需的,没有它们,网关将无法识别该模式为有效

- `version` can start on '0.1.0.' 

没有此属性,您无法更新方案

- `$schema` (https://docs.commongateway.nl/schemas/Entity.schema.json)
- `$id` (https://example.com/schema/{Your scheme name}.schema.json)

唯一的 $id 以与其他模式相关联。

- `type` must be 'object'
- `properties` must be schema properties

一旦您将模式添加到存储库中,您也可以为这些模式添加对象/数据。在 /Data 文件夹中有一个示例。