\Restrictions

对某一个服务器资源进行用户访问量的限制

Summary

Methods
Properties
Constants
Description()
__construct()
day()
minute()
hour()
Check()
$rates
$user
$resource
MINUTE
HOUR
DAY
No protected methods found
No protected properties found
N/A
getVisits()
traceback()
No private properties found
N/A

Constants

MINUTE

MINUTE = 60

HOUR

HOUR = 3600

DAY

DAY = 86400

Properties

$rates

$rates : array

访问量的控制指的是在一段时间内用户的对某一资源的访问次数的限制 在访问量控制的注释标签之中,可以定义多个梯度的访问控制,时间的单位 分别为day, hour, min。

Type

array

$user

$user : string

当前用户的唯一标识符

Type

string

$resource

$resource : string

当前所访问的服务器资源的唯一标记

Type

string

Methods

Description()

Description() 

__construct()

__construct(string  $user, \controller  $controller) 

从一个控制器实例对象构建出一个访问次数控制器

Parameters

string $user

当前用户的唯一标识符,这个标识符可以是

  1. 用户在数据库之中的id编号,
  2. 也可以是一个ip地址,
  3. 也可以是用户分组标记 可以根据实际需求进行自定义
\controller $controller

用户访问权限控制器,需要从控制器之中读取访问限制的注释数据

day()

day() 

对当前的服务器资源的每天的访问次数限制量

minute()

minute() 

对当前的服务器资源的每分钟的访问次数限制量

hour()

hour() 

对当前的服务器资源的每小时的访问次数限制量

Check()

Check() : boolean

判断当前用户是否已经超过了访问限制次数

在进行检查的时候,首先会从服务器的会话文件之中读取相应的数据 在这里不可以从用户的会话之中读取数据?,因为当用户退出登录的时候,数据将会消失, 导致限制计数器被重置 但是如果用户session的id是和用户的数据库编号唯一一一对应的时候, 是否就可以不被重置呢?

Returns

boolean —

返回来的逻辑值表示是否已经超过了访问限制次数 true表示已经超过了限制阈值 false表示还没有超过限制阈值,可以进行正常访问

getVisits()

getVisits() : array

这个函数在获取得到uid指定的访问历史的同时还会向数据源中写入当前的访问

Returns

array —

历史访问的时间点的timestamp

traceback()

traceback(array  $timePoints, integer  $span) : integer

回溯指定时间间隔长度,并返回元素的计数

Parameters

array $timePoints
integer $span

The time span length

Returns

integer —

时间间隔内的元素的数量