dbp / relay-base-organization-connector-campusonline-bundle
Relay API网关的模板包
v0.1.20
2024-04-11 15:00 UTC
Requires
- php: >=8.1
- ext-json: *
- api-platform/core: ^2.7.11 || ^3.2
- dbp/campusonline-api: ^0.3.13
- dbp/relay-base-organization-bundle: ^0.2.11
- dbp/relay-core-bundle: ^0.1.153
- psr/log: ^1.1.4 || ^2.0.0 || ^3.0.0
- symfony/config: ^5.4 || ^6.4
- symfony/dependency-injection: ^5.4 || ^6.4
- symfony/event-dispatcher: ^5.4 || ^6.4
- symfony/event-dispatcher-contracts: ^2.5 || ^3.4
- symfony/framework-bundle: ^5.4 || ^6.4
- symfony/http-foundation: ^5.4 || ^6.4
- symfony/http-kernel: ^5.4 || ^6.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.50
- phpstan/phpstan: ^1.10.59
- phpstan/phpstan-phpunit: ^1.3.16
- phpunit/phpunit: ^9.6.17
- symfony/browser-kit: ^5.4 || ^6.4
- symfony/http-client: ^5.4 || ^6.4
- symfony/monolog-bundle: ^3.10
- symfony/phpunit-bridge: ^7.0
- vimeo/psalm: ^5.22.2
This package is auto-updated.
Last update: 2024-09-23 07:39:39 UTC
README
集成到Relay API服务器
- 将包作为依赖项添加
composer require dbp/relay-base-organization-connector-campusonline-bundle
- 将包添加到
config/bundles.php
... Dbp\Relay\BasePersonBundle\DbpRelayBaseOrganizationBundle::class => ['all' => true], Dbp\Relay\BasePersonBundle\DbpRelayBaseOrganizationConnectorCampusonlineBundle::class => ['all' => true], ...
- 运行
composer install
清除缓存
配置
该包有一些配置值,您可以在您的应用程序中指定,无论是通过硬编码还是通过引用环境变量。
为此,在应用程序中创建 config/packages/dbp_relay_base_organization_connector_ldap.yaml
,内容如下
dbp_relay_base_organization_connector_campusonline: campus_online: api_token: '%env(CAMPUS_ONLINE_API_TOKEN)%' api_url: '%env(CAMPUS_ONLINE_API_URL)%' org_root_id: '%env(ORGANIZATION_ROOT_ID)%'
有关包配置的更多信息,请参阅 https://symfony.com.cn/doc/current/bundles/configuration.html
事件
OrganizationPostEvent
此事件允许您向您想要包含在对\Dbp\Relay\BaseOrganizationBundle\Entity\Organization
基础实体的响应中的Organization
实体添加额外的属性("本地数据")。事件订阅者接收一个包含Organization
基础实体和由Campusonline提供的组织数据的\Dbp\Relay\RelayBaseOrganizationConnectorCampusonlineBundle\Event\OrganizationPostEvent
实例。
例如,创建一个事件订阅者 src/EventSubscriber/OrganizationEventSubscriber.php
<?php namespace App\EventSubscriber; use Dbp\Relay\BaseOrganizationConnectorCampusonlineBundle\Event\OrganizationPostEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class OrganizationEventSubscriber implements EventSubscriberInterface { public static function getSubscribedEvents(): array { return [ OrganizationPostEvent::NAME => 'onPost', ]; } public function onPost(OrganizationPostEvent $event) { $organization = $event->getOrganization(); $organizationData = $event->getOrganizationUnitData(); $organization->trySetLocalDataValue('code', $organizationData->getCode()); } }
并将其添加到 src/Resources/config/services.yaml
App\EventSubscriber\OrganizationEventSubscriber: autowire: true autoconfigure: true