dbp/relay-blob-connector-campusonline-dms-bundle

Relay API网关的模板包

v0.1.0 2024-09-23 13:31 UTC

This package is auto-updated.

Last update: 2024-09-23 13:32:20 UTC


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'];
    }
}