illusorium/kthrottler

此包的最新版本(dev-master)没有可用的许可证信息。

Kthrottler Kohana 模块作为 composer 包

安装: 101

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 3

类型:kohana-module

dev-master 2016-12-19 08:47 UTC

This package is auto-updated.

Last update: 2024-09-06 18:52:42 UTC


README

KThrottler

还有一个 Ruby 版本(适用于 Rails),请参阅此处:http://github.com/fredwu/action_throttler

简介

KThrottler 是一个易于使用的 Kohana 模块,可以快速根据可配置的持续时间和限制来限制应用程序操作。

Wuit 提供。

功能

  • 易于使用,易于配置
  • 轻量级
  • 支持 Kohana v3

先决条件

  • Kohana 内置的 DB 模块

使用方法

下载并安装模块

git clone git://github.com/fredwu/kthrottler.git

启用模块

在您的引导文件(application/bootstrap.php)中,启用 KThrottler 如下所示

Kohana::modules(array(
	'database'    => MODPATH.'database',
    'kthrottler'  => MODPATH.'kthrottler',
));

设置数据库表

导入提供的 kthrottler_logs_db.sql 文件。

配置操作

配置文件位于 config/kthrottler.php。请将其复制到您的 application/config 文件夹。

配置数组看起来像这样

return array
(
	'mail' => array
	(
		'duration' => '1 hour',
		'limit'    => 10,
	),
);

您可以添加任意多的配置元素,只需确保正确标记它们(即,如示例中的 mail)。

在示例中,我们将 mail 操作设置为在 1 小时内最多执行 10 次。

在您的应用程序中注册操作

现在我们需要注册操作,以便它们被记录在数据库中。

要简单地运行一个操作,在您的应用程序中(可能在控制器中),执行以下操作

KThrottler::actions()->run('mail');

KThrottler::actions()->run() 将根据操作是否被限制返回 true 或 false。

KThrottler::actions()->run() 有别名 KThrottler::actions()->can_run() 和负别名 KThrottler::actions()->cannot_run()

通常,我们希望在操作被限制时向用户提供反馈,您可以通过以下方式做到这一点

if (`KThrottler::actions()->cannot_run('mail')`)
	// tell the user that this action is not performed
end

KThrottler::actions()->run() 也接受一个可选的引用参数

KThrottler::actions()->run('mail', $current_user)

引用参数非常有用,因为我们可以根据引用跟踪和限制操作,例如用户。该参数接受一个字符串、一个整数或一个 ORM 对象。

请注意,KThrottler::actions()->run() 和其别名在可能的情况下会执行操作。如果您只想检查操作是否可以执行,您可以这样做

`KThrottler::actions()->can_be_run('mail', $current_user)`

KThrottler::actions()->can_be_run() 在不执行操作的情况下返回 true 或 false,它也有一个负别名,KThrottler::actions()->cannot_be_run()

作者

版权所有(c)2010 Fred Wu (http://fredwu.me) 和 Wuit,MIT 许可证发布