common-gateway / first-test-bundle
创建 symfony flex 插件的示例包
dev-main
2022-11-10 13:46 UTC
Requires
- php: >=7.4
Requires (Dev)
- symfony/dependency-injection: ~3.4|~4.1|~5.0
This package is auto-updated.
Last update: 2024-09-10 17:42:46 UTC
README
创建 php symfony flex 插件的示例仓库
hoi
使用此插件
您可以通过在 composer.json 所在目录中运行命令 composer require common-gateway/pet-store-plugin:dev-main
来安装此插件。
创建自己的包
要求
- GitHub 账户或组织
- Packagist 账户
- Composer 或如果您的项目是 dockerized, Docker Desktop
使用此模板
要创建自己的 symfony 包,您可以复制此仓库以快速启动。
- 在 GitHub 上登录
- 使用 此模板
- 命名您的包(驼峰式命名法)
- 点击绿色按钮
从模板创建仓库
- 更新文件名和命名空间以适合您
- 打开 composer.json,并将其名称更改为适合您的名称。第一个单词应该是命名空间,第二个是包的名称。检查自动加载字段是否已相应设置。注意:这是破折号命名法。另外请参阅:命名您的包
- 打开 FirstTestBundle.php 并更改包名称和命名空间。命名空间应与 composer.json 中的包名称相同,但应为驼峰式命名法。因此,common-gateway/pet-store-bundle 变为 NovaEBA/firsttestbundle
- 相应地重命名 /Service 和 /ActionHandler(如果不使用则删除)。
- 将 /DependencyInjection/FirstBundleExtension.php 重命名为您的 BundleNameExtension.php
- 将 /Resources/config/services.xml 中的服务和处理程序重命名为您的新命名空间和 BundleName
上传到 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\FirstTestBundle\Service\FirstBundleService;
) - 现在您可以使用您的类了!
- 添加正确的use语句(例如
在通用网关中,如果您想要在事件被触发且动作时使用您的代码,请确保动作对象的类设置为处理器名称,包括命名空间。例如,如果我想使用FirstBundleService,我可以将FirstBundleHandler设置为CommonGateway\FirstTestBundle\ActionHandler\FirstBundleHandler
。