行为事件

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

YusoDpEWBQIMyeJUgJ4rxEV9/M91dl3LEfcugQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

行为列表

nEkmIrZxiXvVJaYUVAi3gkpo+KFdowdmE+j76w==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
标签位描述类型说明
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
user_sidenav_before会员中心边栏视图前标签位FastAdmin
user_sidenav_after会员中心边栏视图后标签位FastAdmin
DBMsuICEHPdhVSWYvyDJh8tMTYa8s+KboS/m4g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

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

YbvmVlAiBcuzDFat3qPVyqpk77yDiMmHmqbPaA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

示例代码

jQBzIRycdnlHXtaKu61nz0BW7djJZOQ/bEfCug==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
<?php

namespace addons\mydemo;

use app\common\library\Menu;
use think\Addons;

/**
 * Mydemo插件
 */
class Mydemo extends Addons
{

    // 插件安装方法
    public function install()
    {
    }

    // 插件卸载方法
    public function uninstall()
    {
    }

    // 插件启用方法
    public function enable()
    {
    }

    // 插件禁用方法
    public function disable()
    {
    }
    
    // 插件升级方法
    public function upgrade()
    {
    }
    
    /**
     * 应用初始化的行为事件
     */
    public function appInit()
    {
        return true;
    }
    
    /**
     * 上传成功后的行为事件
     */
    public function uploadAfter()
    {
        return true;
    }
    
    /**
     * Mydemo插件的自定义行为事件
     * 自定义行为事件必须以插件标识开头
     */
    public function mydemoCustomAfter($params)
    {
        return true;
    }
}
szkXdfDHqnvapTNedXnEb0h96cw3NMOPD5vbaQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

监听行为

nhQwvxWzoJTUOfSpNh08U2DSLP5cOHRKgjCtSg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

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

zOACbRNQdWnIuhZTE1mNe2hJ8i3caidv7xD4yg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
\think\Hook::listen("upload_after", $attachment);
ZuRTftjypAaidGqH8SYZleom3POPG0Ng0NK5+A==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

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

UXzprlPmTVuNWFhaYDwKeMBqbqXrQXWtaD2c+A==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

插件自定义的行为事件,我们也需要在插件开发的过程中添加监听行为,如

MBYEGgudPXezrVQCZRTVkLbbUk3CiwizK7dhVw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
\think\Hook::listen("mydemo_custom_after", $params);
sUtfKvGSBJmdjDgHf10bj+f6M14h64qMHprXlA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

触发行为

QVbrztHjldiSZIvPmSTZ93TvPMpK1Qeu/boWEg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

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

SurmZcTGBIKAaULWC1nB2bQBsbt7Yu2usqnwTg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

常见问题

WQgMOYiZjAmItUeGgof2pfkpoPAtDN+/8VdU1A==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

特别注意

gowuDIfaeEJMkvYPFiszLJIJc0jSAhsciCIGhg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

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

oxRAkhpdiQNlTquHcE5vDz+D/5Dp+9mRyE9zyg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

文档最后更新时间:2025-09-01 10:23:29
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。

文档
目录

深色
模式

切换
宽度