行为事件

优质
小牛编辑
145浏览
2023-12-01

FastAdmin中的行为支持ThinkPHP5的所有行为,同时FastAdmin自定义部分专属的行为事件,以下是所有所支持的行为事件

行为列表

标签位描述类型说明
app_init应用初始化标签位系统
app_begin应用开始标签位系统
module_init模块初始化标签位系统
action_begin控制器开始标签位系统
view_filter视图输出过滤标签位系统
app_end应用结束标签位系统
log_write日志write方法标签位系统
log_write_done日志写入完成标签位系统
response_end输出结束标签位系统
response_send响应发送标签位系统
upload_after上传成功标签位FastAdmin
login_init登录标签位FastAdmin
wipecache_after清除缓存后标签位FastAdmin
admin_nologin管理员未登录标签位FastAdmin
admin_nopermission管理员无权限标签位FastAdmin
upload_config_init上传配置标签位FastAdmin
config_init系统配置标签位FastAdmin

使用行为时在Mydemo.php中添加上对应的方法,FastAdmin在安装时、禁用、启用即可自动注册行为。但一定请注意在Mydemo.php中编写行为方法是使用的是驼峰式规则,例如upload_after,方法名则为uploadAfter,如果方法名使用upload_after则不会注册成功。

监听行为

在FastAdmin中可以使用\think\Hook::listen来监听行为

\think\Hook::listen("upload_after", $attachment);

以上代码位于application/admin/controller/Ajax.php135行。因此我们在们在Mydemo.php中的uploadAfter会被触发。

触发行为

如果在特殊情况下我们需要手动触发行为,我们可以使用\think\Hook::exec("upload_after", $attachment);来手动触发行为,并获得返回值。

常见问题

如果我们在Mydemo.php中定义了行为并生效了,后续又删除了Mydemo.php中的行为代码,此归会导致整个框架都无法找到插件的行为方法,此时我们需要手动删除application/extra/addons.phphooks节点相应的行为配置,移除相关的配置即可。