charm / hooks
0.0.6
2021-07-01 09:20 UTC
Requires
- charm/error: ^0
README
提供一组函数,用于实现工具之间的集成。
用法
获取第一个真值响应
// Integrating:
Charm\Hooks::instance()->listen('e-mail invalid', function($value) {
if (str_ends_with($value, '@company.com')) {
return "E-mail address must end with $company.com";
}
});
// Enabling integration:
if ($reason = Charm\Hooks::instance()->dispatchToFirst('e-mail invalid')) {
throw new Exception("Invalid e-mail: $reason");
}
过滤一些数据
// Integrating
Charm\Hooks::instance()->listen('user api-response', function($value) {
unset($value['email']);
unset($value['password']);
return $value;
});
// Filtering
echo json_encode(Charm\Hooks::instance()->filter('user api-response', $user->jsonSerialize()));
从零个或多个监听器查询数据
Charm\Hooks::instance()->listen('toolbar buttons', function() {
return new Button("Logout");
});
foreach (Charm\Hooks::instance()->dispatch('toolbar buttons') as $button) {
echo $button->renderHtml();
}