行为事件
优质
小牛编辑
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.php
第135
行。因此我们在们在Mydemo.php
中的uploadAfter
会被触发。
触发行为
如果在特殊情况下我们需要手动触发行为,我们可以使用\think\Hook::exec("upload_after", $attachment);
来手动触发行为,并获得返回值。
常见问题
如果我们在Mydemo.php
中定义了行为并生效了,后续又删除了Mydemo.php
中的行为代码,此归会导致整个框架都无法找到插件的行为方法,此时我们需要手动删除application/extra/addons.php
中hooks
节点相应的行为配置,移除相关的配置即可。