common-gateway / sim-xml-to-zgw-bundle
Symfony扩展包,用于将SimXML消息转换为ZGW对象
Requires
- php: >=7.4
- common-gateway/zgw-bundle: 1.0.50 | ^1.2
- commongateway/corebundle: ^1.1.110 | < 2.0
Requires (Dev)
- symfony/dependency-injection: ~3.4|~4.1|~5.0
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.json 对Common Gateway的基本了解
使用此模板
此模板用于快速Symfony扩展包开发,并作为基于自定义插件的模式。遵循以下步骤,在45分钟或更短的时间内创建您的插件
-
在GitHub上登录
-
使用此模板
-
命名您的扩展包(驼峰式)。扩展包需要以
Bundle
结尾,符合Symfony 命名约定。 -
点击绿色按钮
从模板创建存储库
-
更新文件名和命名空间以适应您的需求
- 打开composer.json,并将其更改为适合您的名称。第一个单词应该是命名空间,第二个是扩展包的名称。
注意:这是短横线命名法。另请参阅:命名您的包
- 检查自动加载字段是否已相应设置。
- 打开SimXMLToZGWBundle.php并更改Bundle
name
和namespace
。命名空间应与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
文件夹中有一个示例。