mumsnet / mn-toolkit
此包包含我们在所有项目中使用的各种功能。这些功能是从旧版Ruby gems复制的。
Requires
- php: ~7.1
- ackintosh/ganesha: ^0.5.0
- aws/aws-sdk-php: ^3.118
- graylog2/gelf-php: ^1.6
- guzzlehttp/guzzle: ^6.3
- lindelius/php-jwt: ^0.8
- monolog/monolog: ^2.0
- phpfastcache/phpfastcache: ^7.1
Requires (Dev)
- phpunit/phpunit: >=7.0
- squizlabs/php_codesniffer: ^3.0
- v1.9.52
- v1.9.51
- v1.9.50
- v1.9.48
- v1.9.47
- v1.9.46
- v1.9.45
- v1.9.44
- v1.9.43
- v1.9.42
- v1.9.41
- v1.9.40
- v1.9.39
- v1.9.38
- v1.9.37
- v1.9.36
- v1.9.35
- v1.9.34
- v1.9.33
- v1.9.32
- v1.9.31
- v1.9.30
- v1.9.29
- v1.9.28
- v1.9.26
- v1.9.25
- v1.9.23
- v1.9.22
- v1.9.21
- v1.9.20
- v1.9.19
- v1.9.11
- v1.9.10
- v1.9.9
- v1.9.8
- v1.9.7
- v1.9.6
- v1.9.5
- v1.9.3
- v1.9.2
- v1.9.0
- v1.8.9
- v1.8.8
- v1.8.7
- v1.8.6
- v1.8.5
- v1.8.4
- v1.8.3
- v1.8.1
- v1.7.9
- v1.7.8
- v1.7.7
- v1.7.6
- v1.7.5
- v1.7.3
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.10
- v1.6.9
- v1.6.8
- v1.6.7
- v1.6.6
- v1.6.5
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.9
- v1.5.8
- v1.5.7
- v1.5.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.4
- v1.3
- 1.2
- v1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- dev-master / 1.0.x-dev
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.4
- dev-added-logging-for-get-session-bug
- dev-add-premium-user-header
- dev-add-FT-unit-tests
This package is auto-updated.
Last update: 2024-09-20 06:35:45 UTC
README
此仓库存放我们的composer包mn-toolkit
的源代码。此包包含以下功能
-
功能开关 - 用于开启和关闭功能
您可以使用'isOn'函数检查功能开关的状态。您可以使用'getToggles'函数检查可用的开关。还有用于检查白名单和黑名单URI的函数。
这些函数只需提供开关和请求URI即可。 -
本地文件缓存 - 如果存在,返回与$key关联的缓存值,否则使用$loadFunction加载它并将其添加到缓存。
-
甘尼什文件存储适配器 - 电路断路器模式的PHP实现
更多信息请访问:https://github.com/ackintosh/ganesha -
全局记录器 - 此包的记录器类
全局记录器用于设置全局记录器实例,并在需要时检索它,以便我们可以将其用于记录错误。这会将错误发送到您的本地日志以及到生产环境的papertrail。我们主要用它来记录系统错误,您可以使用它如下:log::error('Token does not exist');
-
全局前端 - 加载和缓存全局资产
-
JWT - 用于添加和检查JWT令牌,以保护跨微服务请求
要设置JWT令牌,请使用ENV值在JWT网站上生成它。文档中有JWT指南。令牌生成后,您将其添加到所有要保护请求的Authorization头中。要检查请求是否有令牌,您可以使用
$authorization = $request->header('Authorization');
$withoutBearer = str_replace('bearer ', '', $authorization);
if($authorization && $withoutBearer != ''){
$isValid = JWT::getInstance()->isValidToken($withoutBearer);
if($isValid){
return $next($request);
}
}
-
事务性电子邮件 - 发送事务性电子邮件
要使用此功能,您需要传递一个您的记录器实例,以便包可以在发送过程中记录错误。您可以使用如下方式使用它
$logger = Log::getLogger();
$mn_transctional_email = new SendTransactionalEmail($logger);
$mn_transctional_email->sendTransactionalEmail($template, $email, 'Mumnset通知', '您好,panos', '127.0.0.1', ['body' => $body]);
sendTransactionalEmail函数需要以下参数
$message_type,
$to_address,
$subject,
$fallback_text,
$request_id,
$template_fields = [],
$cc_addresses = ''
-
源IP检测 - 可能不需要这个
-
网站行为(Graylog)- 用于行为记录的记录器
此记录器主要用于记录用户行为,如:用户尝试在不登录的情况下更新个人信息。
在这些日志中,您可以传递大量信息,如下所示
$this->siteaction = SiteAction::getInstance();
$this->siteaction->log($user_id, 'Failed to created pregnancy record', 'profile', 'profile_update', ['errors' => json_encode($e->getMessage())]);
-
关联ID(设置原始请求ID)
如果不存在,设置原始请求ID头,用于关联和跟踪请求 -
lambda的用户会话(SSO)- 为通过lambda登录设置用户会话,它的使用方式与下面的laravel用户会话相同
-
laravel的用户会话(SSO)- 为通过laravel登录设置用户会话
您可以设置会话如下
创建一个 UserSessionsLaravel 对象:$session = new UserSessionsLaravel();
设置用户会话:$session->setUserSession(['user_id' => $userEmailCheck->id], true);
可以从会话中获取用户 ID,如下所示:
通过 $_COOKIE 创建一个 UserSessionsLaravel 对象:$session = new UserSessionsLaravel($_COOKIE);
获取会话中的用户 ID:$userId = $session->getUserIdFromSession();
-
Slack 消息发送器 - 接受一个频道和一条消息,并将消息发送到该频道
使用非常简单。只需调用函数并传入频道名称和消息。确保你的 .ENV 文件中有频道的凭证。SlackMessenger::sendMessage('channel','message')
安装
通过 Composer 安装
$ composer require mumsnet/mn-toolkit