dbp / relay-blob-connector-campusonline-dms-bundle
Relay API网关的模板包
Requires
- php: >=8.1
- ext-json: *
- api-platform/core: ^3.2
- dbp/relay-core-bundle: ^0.1.173
- symfony/config: ^6.4
- symfony/dependency-injection: ^6.4
- symfony/framework-bundle: ^6.4
- symfony/http-kernel: ^6.4
- symfony/uid: ^6.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.50
- phpstan/phpstan: ^1.10.59
- phpstan/phpstan-phpunit: ^1.3.16
- phpstan/phpstan-symfony: ^1.3.7
- phpunit/phpunit: ^10.1
- symfony/browser-kit: ^6.4
- symfony/http-client: ^6.4
- symfony/monolog-bundle: ^3.10
- symfony/phpunit-bridge: ^7.0.4
- vimeo/psalm: ^5.22.2
README
DbpRelay{{Name}}Bundle
GitHub | Packagist | 前端应用程序 | {{Name}} 网站页面
{{name}} 包提供与 ... 交互的 API
在 {{Name}} 前端应用程序 中使用此 API 的对应前端应用程序。
包安装
您可以直接从 packagist.org 安装此包。
composer require {{package-name}}
集成到 Relay API 服务器
- 将包添加到您的
config/bundles.php
中的DbpRelayCoreBundle
前面
... Dbp\Relay\{{Name}}Bundle\DbpRelay{{Name}}Bundle::class => ['all' => true], Dbp\Relay\CoreBundle\DbpRelayCoreBundle::class => ['all' => true], ];
如果您使用的是 DBP API 服务器模板 作为您的 Symfony 应用程序的模板,那么这应该已经为您生成了。
- 运行
composer install
来清除缓存
配置
该包有一个 database_url
配置值,您可以在您的应用程序中指定它,无论是通过硬编码还是通过引用环境变量。
为此,在应用程序中创建 config/packages/dbp_relay_{{name}}.yaml
,内容如下
dbp_relay_{{name}}: database_url: 'mysql://db:secret@mariadb:3306/db?serverVersion=mariadb-10.3.30' # database_url: %env({{NAME}}_DATABASE_URL)%
如果您使用的是 DBP API 服务器模板 作为您的 Symfony 应用程序的模板,那么配置文件应该已经为您生成了。
有关包配置的更多信息,请参阅 https://symfony.com.cn/doc/current/bundles/configuration.html。
开发与测试
- 安装依赖项:
composer install
- 运行测试:
composer test
- 运行代码检查:
composer run lint
- 运行 cs-fixer:
composer run cs-fix
包依赖项
如果您在包中安装包,不要忘记在主应用程序中拉取依赖项。
# updates and installs dependencies of {{package-name}}
composer update {{package-name}}
脚本
数据库迁移
运行此脚本以迁移数据库。在安装包之后以及在每次更新之后,运行此脚本以使数据库适应新的源代码。
php bin/console doctrine:migrations:migrate --em=dbp_relay_{{name}}_bundle
错误代码
/{{name}}/submissions
POST
/{{name}}/submissions/{identifier}
GET
角色
此包需要将角色 ROLE_SCOPE_{{NAME}}
分配给用户以获取获取数据的权限。要创建新的提交条目,需要 Symfony 角色代码 ROLE_SCOPE_{{NAME}}-POST
。
事件
为了扩展包的行为,已注册以下事件
CreateSubmissionPostEvent
此事件允许您对提交创建做出反应。例如,您可以使用此事件向提交者发送电子邮件。
事件订阅者在一个服务中接收 Dbp\Relay\{{Name}}Bundle\Event\CreateSubmissionPostEvent
实例,例如在 src/EventSubscriber/CreateSubmissionSubscriber.php
中。
<?php namespace App\EventSubscriber; use Dbp\Relay\{{Name}}Bundle\Event\CreateSubmissionPostEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class CreateSubmissionSubscriber implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [ CreateSubmissionPostEvent::NAME => 'onPost', ]; } public function onPost(CreateSubmissionPostEvent $event) { $submission = $event->getSubmission(); $dataFeedElement = $submission->getDataFeedElementDecoded(); // TODO: extract email address and send email $email = $dataFeedElement['email']; } }