编译适用于 PHP 8.2 的 redis.dll 扩展文件
PHP 8.2发布了,当然是第一时间上啦。项目用到了redis,但pecl官网上没提供对应的dll文件,只能自己编译了。
PHP 8.2发布了,当然是第一时间上啦。项目用到了redis,但pecl官网上没提供对应的dll文件,只能自己编译了。
为了减少表格列的长度,想着把行操作都放到鼠标右键菜单去。可惜Layui的表格目前还不支持右键菜单事件,只能自己去实现了。
layui 的表格头部工具栏左侧图标只有筛选列、导出和打印,功能有点少。经过查阅源代码和手册,找到了全局添加自定义工具的方法,在此记录一下。
查阅手册,配置头部工具栏左侧图标配置,的方式如下:
layui.table.render({ //其它参数在此省略
defaultToolbar: ['filter', 'print', 'exports', {
title: '提示' //标题
,layEvent: 'LAYTABLE_TIPS' //事件名,用于 toolbar 事件中使用
,icon: 'layui-icon-tips' //图标类名
}]
});
字符串的工具是默认自带的,如果是自定义,需要用对象。参照示例,我在这里加一个刷新工具。
layui.table.render({ //其它参数在此省略
defaultToolbar: ['filter', 'print', 'exports', {
title: '刷新'
,layEvent: 'LAYTABLE_REFRESH'
,icon: 'layui-icon-refresh'
}]
});
在layui.table.render()
里定义只适用于单个表格,而我想的是全局默认都有。再经过一番研究,找到设置全局项方法layui.table.set()
,可以在全局公共文件里去设置默认的defaultToolbar
。
layui.use('table', () => {
layui.table.set({
defaultToolbar: [
'filter', 'print', 'exports'
, {title: '刷新', layEvent: 'LAYTABLE_REFRESH', icon: 'layui-icon-refresh'}
]
})
})
工具图标加上去了,接下来就是监听刷新按钮的事件了。Layui的底层API提供了layui.onevent()
方法,用于监听事件。
layui.onevent('table', 'toolbar()', obj => {
// 判断是否是刷新事件(LAYTABLE_REFRESH)
if ("LAYTABLE_REFRESH" === obj.event) {
// 刷新当前表格
layui.table.reload(obj.config.id);
}
})
到此,自定义工具已搞定,以下是完整代码:
layui.use('table', () => {
// 设置默认表格头部工具栏左侧图标
layui.table.set({
defaultToolbar: [
'filter', 'print', 'exports'
, {title: '刷新', layEvent: 'LAYTABLE_REFRESH', icon: 'layui-icon-refresh'}
]
})
// 监听表格头部工具栏事件
layui.onevent('table', 'toolbar()', obj => {
// 判断是否是刷新事件(LAYTABLE_REFRESH)
if ("LAYTABLE_REFRESH" === obj.event) {
// 刷新当前表格
layui.table.reload(obj.config.id);
}
})
})
array(1, 2, 3)
可以简写为[1, 2, 3]
if (time() % 2) {
$b = '111';
} else {
$b = '222';
}
可以简写为
$b = time() % 2 ? '111' : '222';
$a = new stdClass();
if (null !== $a) {
$b = $a->name;
} else {
$b = null;
}
可以简写为
$a = new stdClass();
$b = $a?->name;
if (isset($a)) {
$a = 'default';
}
echo $a;
可以简写为
echo $a ?? 'default';
list($a, $b) = [111, 222]
可以简写为[$a, $b] = $array
$a = 111 , $b = 222
['a' => $a, 0 => $b] = ['a' => 123, 456]
// $a = 123 , $b = 456
项目运行中开始出现了卡顿,需要进行问题定位,于是写了个函数来专门记录代码执行到每个位置所消耗的时间。