fotografde / notification-library
该软件包最新版本(1.1.1)没有可用的许可证信息。
一个简单的库,用于将事件推送到队列,由通知服务处理
1.1.1
2018-08-28 17:00 UTC
Requires
- php: >=5.5
- aws/aws-sdk-php: 3.*
Requires (Dev)
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2024-09-17 08:32:26 UTC
README
通知库
一个简单的库,用于将数据推送到由通知服务处理
设置
-
添加到您的(项目文件夹)/composer.json中
"require": { ... "fotografde/notification-library": "*" }
-
运行
(project folder)> composer update
-
如有必要,修改配置文件
(project folder)> cp vendor/GetPhoto/notification-library/config/notification.php.default vendor/GetPhoto/notification-library/config/notification.php OR (project folder)> cp src/vendors/GetPhoto/notification-library/config/notification.php.default src/vendors/GetPhoto/notification-library/config/notification.php
**或(用于本地配置)**
(project folder)> cp config/notification.php.default config/notification.php
-
并配置它
'events_table' => 'EventQueue', 'region' => '...', 'endpoint' => '...', 'credential_key' => '...', 'credential_secret' => '...', 'notification_service_url' => '...', 'method_add_trigger' => 'api/trigger',
事件
用法
-
导入通知类
use GetPhoto\Notification;
-
将数据传递给推送事件的方法
(new Notification)->pushEvent($data);
-
示例
-
用户登录
$data = [ 'eventTypeId' => 'User.Login', 'dateTime' => '20170117 232900', 'userId' => '1', 'photographerId' => '1', ]; (new Notification)->pushEvent($data);
-
新的联系人表
$data = [ 'eventTypeId' => 'Contactsheet.Created', 'dateTime' => '20170115 080005', 'userId' => '5', 'photographerId' => '2', 'contactsheetId' => 'a0shfd0a9shf9', ]; (new Notification)->pushEvent($data);
-
触发器
用法
-
导入触发器类
use GetPhoto\Trigger;
-
实例化一个新对象,添加选项并保存
//Trigger ID => Unique name for your trigger //Trigger type => EventBased, Scheduled, TimeBased or Manual //Trigger action => Action to be executed $trigger = new Trigger('trigger id', 'trigger description', 'trigger type', 'trigger action'); //optional methods $trigger->addSubscriptionKey('value'); $trigger->addDelay('value'); $trigger->addWhen('value'); //auxiliar methods $trigger->createActionParameterConstant('constant', 'value'); $trigger->createActionParameterVariable('variable', 'value'); $trigger->createActionParameterMethod('variable', 'method', ['arguments', ...]); //optional methods that can be used multiple times $trigger->addActionParameter($parameter); $trigger->addParameter(['data key' => 'data value', ...]); $trigger->save();
样本
手动触发器
通过API请求执行的触发器
-
返回所有用户的登录信息的JSON
问题:我们需要一个触发器来向用户的配置页面提供所有登录信息。该配置页面将在用户请求登录数据时发出API请求。
解决方案:我们有返回事件的方法,可以根据给定的参数过滤事件。在这种情况下,我们想要根据事件类型ID和用户ID过滤。我们可以从订阅中获取用户ID,因此它是一个变量。由于我们已经知道事件类型ID,我们定义了一个常量。
$trigger = new Trigger('UserLogins.v1', 'Shows all logins from an user', 'Manual', 'method::returnJson'); $trigger->addSubscriptionKey('UserId'); $userId = $trigger->createVariable('userId', 'userId'); $eventTypeId = $trigger->createConstant('eventTypeId', 'User.Login'); $eventsMethod = $trigger->createMethod('returnJson', [$userId, $eventTypeId]); $events = $trigger->createVariable('events', $eventsMethod); $trigger->addActionParameter($events); $trigger->save();
结果
- 触发器ID:UserLogins.v1
- 触发器描述:显示用户的全部登录信息
- 类型:手动
- 订阅密钥:UserId
- 操作:方法::returnJson
- 操作参数:事件::{{returnEvents||userId::[[userId]]||eventTypeId::User.Login}}
用法
http://notification-service-url/queryEvents/UserLogins.v1/subscriber-id