common-gateway / github-bundle
用于GitHub问题的CRUD操作的Github Symfony Flex bundle
Requires
- php: >=7.4
- commongateway/corebundle: >=0.0.1
Requires (Dev)
- symfony/dependency-injection: ~3.4|~4.1|~5.0
README
创建php symfony flex bundles的示例仓库
使用此bundle
使用common-gateway管理员用户界面安装
@todo!
使用php命令安装
要执行以下命令,您需要Composer或已经安装了php和composer的docker化安装。
您可以通过以下命令安装此插件: composer require common-gateway/github-bundle:dev-main
或dockerized: docker-compose exec php composer require common-gateway/github-bundle:dev-main
在您的composer.json所在的目录中。
如果您还想安装schema作为实体,您可以使用以下命令安装: php bin/console commongateway:install common-gateway/github-bundle
或dockerized: docker-compose exec php bin/console commongateway:install common-gateway/github-bundle
创建您自己的bundle
要求
- GitHub 账户或组织
- Packagist 账户
- Composer 或如果您项目是docker化,Docker Desktop
使用此模板
创建您自己的symfony bundle。您可以将此仓库复制以快速开始。
- 在GitHub 上登录
- 使用此模板
- 命名您的bundle(驼峰式命名法)
- 按下绿色按钮
从模板创建存储库
- 更新文件名和命名空间以适应您的情况
- 打开composer.json,并将其更改为适合您的名称。第一个单词应该是命名空间,第二个是bundle的名称。检查autoload字段是否设置正确。注意:这是中划线命名法。也请阅读:命名您的包
- 打开PetStoreBundle.php并更改Bundle名称和命名空间。命名空间应与composer.json中包名称相同,但应为驼峰式。所以common-gateway/github-bundle变为CommonGateway/GithubBundle
- 相应地重命名/Service和/ActionHandler(如果没有使用,则删除)。
- 将/DependencyInjection/GithubExtension.php重命名为BundleNameExtension.php
- 重命名/Resources/config/services.yaml的命名空间
添加schema
如果您使用common-gateway使用您的bundle,您可以添加自己的schema,这些schema将作为实体加载。这些实体将被加载到数据库中,这样您就可以处理您自己的对象/数据。
这些schema是json schema。
您可以添加现有的schema或创建自己的并添加到/Scheme中。也有一个示例/Scheme/example.json。
确保您的schema具有version
属性(必需),这样您就可以更新您的schema!还请确保它们具有唯一的$id
,这样它们就可以与其他schema关联。
所有必需的属性包括
- 'version'可以从'0.1.0'开始
- '$schema' (https://json-schema.fullstack.org.cn/draft/2020-12/schema)
- '$id' (https://opencatalogi.nl/example.schema.json)
- 'type' 必须是 'object'
- 'properties' 必须是 schema 属性
如果你的 schema 中缺少所有必需的属性,网关将不会安装该 schema,并声称它是无效的。
如果你已添加了 schema,你也可以为它们添加对象/数据,在 /Data 中有一个你可以使用的示例。
上传到 packagist
在我们能够使用我们的包和代码之前,我们必须在 packagist 上将其在线发布,这样我们就可以使用 composer 进行安装。
- 上传到 packagist
- 前往 Packagist
- 在顶部菜单栏中按
提交
并粘贴你的包的 GitHub 仓库链接,你 composer.json 中的名称将被用作包名。 - 如果有效,按
提交
- 自动更新包
- 前往你的 packagist 个人资料。
- 按
显示 API 令牌
并复制 - 前往你的新包的 GitHub 仓库
- 前往你的仓库设置
- 前往钩子,并按
添加钩子
- 将 Payload URL 设置为 https://packagist.org.cn/api/github?username=yourPackagistUsername
- 保持启用 SSL 验证
- 作为密钥,粘贴从 packagist 复制的 API 令牌
- 设置事件为
仅推送事件
- 按
添加钩子
- 如果你推送了新的代码,它现在将推送到 packagist。在 packagist 上你不应该再看到自动更新的警告。如果它仍然存在,请检查你的 GitHub 钩子上的用户名和密钥是否设置正确。
使用你的代码
要在你的库中使用此代码,我们首先必须使用 composer 安装它。
注意:对于 docker,在所有命令之前添加 docker-compose exec php
- 使用命令行导航到你想使用此包的项目中 composer.json 所在的位置。
- 执行
composer require {完整包名}:dev-main
- Docker 用户:重启你的容器,以便 symfony 能够识别新的 Bundle 命名空间
- 执行
- 打开你想要使用类的 php 文件。
- 添加正确的 use 语句(例如
use CommonGateway\GithubBundle\Service\GithubService;
) - 现在你可以使用你的类了!
- 添加正确的 use 语句(例如
在通用网关中,如果你想要在事件和动作触发时使用你的代码,确保动作对象的类设置为处理器名称,包括命名空间。例如,如果我想使用 GithubService,我可以将 GithubHandler 设置为 CommonGateway\GithubBundle\ActionHandler\GithubHandler
。