首页 理论教育PHPMVC开发实战:内置行为扩展效果

PHPMVC开发实战:内置行为扩展效果

【摘要】:前面介绍过,系统内置的行为是系统正常执行的基础,所以开发人员不需要改动这些扩展。事实上系统已经提供了一系列行为扩展,在项目中使用时,直接配置即可。配置项LIMIT_REFLESH_TIMES表示刷新的间隔,以秒为单位。

前面介绍过,系统内置的行为是系统正常执行的基础,所以开发人员不需要改动这些扩展。事实上系统已经提供了一系列行为扩展,在项目中使用时,直接配置即可(所有内置行为扩展默认都是被禁用的)。下面分别介绍。

1.AgentCheck(检测浏览器代理)

AgentCheck行为是一个系统提供的扩展行为,用于检测当前访问用户是否使用代理访问,如果是则禁止访问。开启该行为只需要两步。首先打开项目配置文件,开启LIMIT_PROXY_VISIT配置项,如以下代码所示。

978-7-111-42852-7-Part02-658.jpg

然后打开项目Conf/tags.php文件(如果不存在则需要手动创建),配置行为标签,以便系统正确执行,如以下代码所示。

978-7-111-42852-7-Part02-659.jpg

如上述代码所示,这里执行AgentCheck行为的运行阶段为app_init(即初始化程序)。读者可以根据图11-8所示标识的流程,在相应的标签中定义需要的扩展行为。通过前面的步骤,当前项目下的网页就具备检测是否代理访问的功能了。

2.BrowserCheck(防止浏览器刷新)

BrowserCheck行为利用Cookie防止用户频繁刷新浏览器,该行为共有一项配置,如以下代码所示。

978-7-111-42852-7-Part02-660.jpg

配置项LIMIT_REFLESH_TIMES表示刷新的间隔,以秒为单位。设置完成后,只需要在tags.php文件中定位运行标签即可,如以下代码所示。

978-7-111-42852-7-Part02-661.jpg

3.CheckLang(检测多语言)

CheckLang行为在9.3节已经有详细介绍,在此不再细述。CheckLang行为共支持4个配置项,如以下代码所示。

978-7-111-42852-7-Part02-662.jpg

4.CronRun(计划任务)(www.chuimin.cn)

这里的计划任务与Linux中的计划任务不是一个概念,CronRun行为需要由浏览器触发,执行的任务指令为Web可执行脚本,例如JavaScript、PHP、HTML等。要启动计划任务,只需4个步骤。首先配置计划任务,打开项目配置文件,设置计划任务执行时间,如以下代码所示。

978-7-111-42852-7-Part02-663.jpg

CRON_MAX_TIME配置项表示计划任务的执行时间,以秒为单位(即服务器时间加上CRON_MAX_TIME配置时间等于计划任务执行时间)。配置完成后在tags.php文件中定位CronRun行为,如以下代码所示。

978-7-111-42852-7-Part02-664.jpg

通过前面的配置,计划任务成功开启。接下来需要配置计划任务列表,CronRun使用~crons.php存放任务列表,该文件需要存放于项目Runtime目录中。接下来配置一条计划任务,如以下代码所示。

978-7-111-42852-7-Part02-665.jpg

如上述代码所示,testcron表示任务名称。对应的值为一维数组,其中test.php表示执行的PHP文件名称,该文件必须保存于项目Lib/Cron目录;参数30表示执行间隔时间;1353052449表示下次执行的时间戳,可为空。

最后只需要在Lib/Cron目录中创建test.php文件即可。为了方便演示,这里只需要在该文件中输出字符串即可,如以下代码所示。

978-7-111-42852-7-Part02-666.jpg

在实际应用开发中,可以在任务执行脚本中调用远程数据、执行PHP支持的功能操作。

5.RobotCheck(防止数据爬虫访问)

RobotCheck行为用于检测访问来源是否是数据采集之类的自动化软件,从而减少系统资源占用。RobotCheck行为共支持一项配置项,如以下代码所示。

978-7-111-42852-7-Part02-667.jpg

开启RobotCheck行为后,只需要在tags.php文件中指定运行阶段即可,如以下代码所示。

978-7-111-42852-7-Part02-668.jpg