common-gateway / zgw-to-zds-bundle
创建 symfony flex 插件包的示例
Requires
- php: >=7.4
- common-gateway/zgw-bundle: ^1.0
- commongateway/corebundle: ^1.0.86
Requires (Dev)
- symfony/dependency-injection: ~3.4|~4.1|~5.0
This package is auto-updated.
Last update: 2024-09-16 14:56:58 UTC
README
此仓库用于创建 PHP Symfony flex 插件包。通用网关生态系统使用此模板进行快速开发,以扩展 Core 之外的网关功能。
第一部分是关于安装插件。后一部分是关于自定义插件以扩展通用网关功能。
使用通用网关管理员用户界面安装
一旦正确设置了一个包(如本仓库),通用网关可以自动发现该包,而无需额外配置。前往“插件”选项卡以搜索、选择和安装插件。
使用 PHP 命令安装
要执行以下命令,您需要 Composer 或已安装 PHP 和 Composer 的 Dockerized 安装。
终端和根目录中的 Composer 方法
用于安装插件
$composer require common-gateway/pet-store-bundle:dev-main
用于安装模式
`$php bin/console commongateway:install common-gateway/pet-store-bundle
终端和根目录中的 Dockerized 方法
用于安装插件
$docker-compose exec php composer require common-gateway/pet-store-bundle:dev-main
用于安装模式
$docker-compose exec php bin/console commongateway:install common-gateway/pet-store-bundle
创建您的插件包
本节是为想要在不添加核心代码库的情况下构建插件以扩展通用网关功能而不需要添加核心代码库的开发者准备的。
以下知识是假定和/或安装的
Composer Packagist Docker Schema.json 基本的 通用网关 知识
使用此模板
此模板用于快速开发 symfony 插件包,并作为基于您的自定义插件构建的模型。按照以下步骤,在 45 分钟或更短的时间内创建您的插件
-
在 GitHub 上登录
-
使用 此模板
-
命名您的插件包(驼峰式)。插件包需要以
Bundle
结尾,遵循 Symfony 命名约定。 -
点击绿色按钮
从模板创建仓库
-
更新文件名和命名空间以适应您的需求
- 打开 composer.json,并将其更改为您的名称。第一个单词应该是命名空间,第二个是包名。
注意:这是短横线命名法。另外阅读:命名您的包
- 检查自动加载字段是否已相应设置。
- 打开 PetStoreBundle.php 并更改 Bundle
name
和namespace
。命名空间应与 composer.json 中的包名相同,但为驼峰式。因此,common-gateway/pet-store-bundle
变为CommonGateway/ZGW-to-ZDSBundle
- 相应地重命名
/Service
和/ActionHandler
(如果未使用则删除)。 - 将
/DependencyInjection/PetStoreExtension.php
重命名为您的BundleNameExtension.php
- 重命名
/Resources/config/services.yaml
命名空间
添加模式
您可以从您的/Schema
文件夹中加载json模式作为实体,并在Common Gateway中使用它们,以根据您的模式处理对象。
您可以将现有的模式添加到/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
文件夹中。