Dcat 扩展包 dcat/easy-excel 的替代品

Dcat 系统默认使用 Easy Excel 作为导出工具,支持导出 csvxlsxods 等格式文件。

使用前必须先安装 Easy Excel

composer require dcat/easy-excel

Easy Excel 最后一次更新是2年前,它所依赖的 box/spout 包已经停止维护, 在我们执行完 composer 指令后,能看到控制台有警告信息:

Package box/spout is abandoned, you should avoid using it. No replacement was suggested.

我有如下两个方法可以解决此问题...

分类至 PHP
0条评论

Dcat 让查询过滤 $filter->between(xxx)->datetime() 默认从00:00:00开始到23:59:59结束

在 Dcat 中,使用$filter-between(xxx)-datetime() 这样的查询过滤,在页面上选择开始日期时,默认会取当前的时间。

而我们使用 between-datetime 作为时间范围选择,一般是期望开始日期的时分秒从00:00:00起,结束日期的时分秒则到23:59:59止。

想要实现这样的,只需以下两步骤...

分类至 PHP
0条评论

PHP 实现平滑关闭/重启

写过 CLI 常驻进程的老司机肯定遇到过这么一个问题:在需要更新程序的时候,我要怎样才能安全关闭老进程?你可能会想到 NGINX、php-fpm 之类的平滑重启是给进程发送 USR2 信号,然后它就会将当前请求处理完再退出。 但进程是怎样接收信号、处理信号,估计就不是很多人能说清楚了...

分类至 PHP
0条评论

关于 PHP 导入/导出 Excel 文件

很久以前,还在用 php5.x 的时候,将数据导出为 Excel 文件需要用到 PHPExcel 扩展包。随着 php 版本更新到 7.x,PHPExcel 已过时,官方推出全新版本 PhpSpreadsheet。

但无论是 PHPExcel 还是 PhpSpreadsheet,都有个弊端:内存开销极大!这在操作大文件时及其明显,脚本动不动就内存超标。针对这个问题,PhpSpreadsheet 新增了一个缓存功能,可以在操作表格时,将数据缓冲到 Redis、Memcache 等地方。

近年来,开发项目一直使用 DcatAdmin 后台框架,记得框架里有个导出 Excel 的功能,但却不需要安装 PhpSpreadsheet,而是需要安装 Easy Excel...

分类至 PHP
1条评论

laravel 中 redis set 方法怎么把 nx, ex 怎么一起使用

在 .env 中可以配置 REDIS_CLIENT 指定 Laravel 框架使用 phpredis 或 predis 来操作 Redis:

REDIS_CLIENT=phpredis
#或
REDIS_CLIENT=predis

phpredis 与 predis 区别:

  • phpredis,它是用 c 语言写的 php 的高效扩展:https://github.com/phpredis/phpredis
  • predis,它是用纯 php 代码写的,也用的蛮多的:https://github.com/predis/predis

...

分类至 PHP
0条评论

PHP8 国密 SM4 加解密

OpenSSL 1.1.1 开始已支持国密算法(https://www.openssl.org/news/changelog.txt),现在使用 PHP8 的 OpenSSL 扩展就可以实现国密算法加解密了,本文示例使用的是 PHP 8.1.17。

SM4-CBC 算法加解密示例:...

分类至 PHP
0条评论

关于将金额xx元换算成xx分

接过微信支付的都知道,微信支付需要把单位为元的金额转成单位分再带入接口,于是,有些人会这样写:

$totalFee = intval($money * 100);

金额变量 $money 只精确到小数点后2位,在 mysql 中一般用 decimal(8,2) 类型存储。假设金额为9.70元 ,由于计算 $totalFee 用的是乘法,不像除法可能除不尽,所有你可能认为 $totalFee 的结果就是整数 970。但实际上,当你加上 var_dump 打印的时候,会有意想不到的结果...

分类至 PHP
0条评论