destoon 计划任务实现及存在的问题
使用 destoon 框架(6.0)过程中发现,存在「计划任务」未按时执行的问题。比如 2 小时订单未支付自动关闭的任务,通过后台单次调用成功,但并没有按照任务设置中的每半小时执行一次。上次运行时间和下次运行时间根本对不上,通过测试未支付订单也确未自动关闭。使用过的 ci 和 tp 的定时任务(同计划任务),运行脚本部分与 destoon 中的形式基本一致。ci 和 tp 使用 linux 系统计
使用 destoon 框架(6.0)过程中发现,存在「计划任务」未按时执行的问题。比如 2 小时订单未支付自动关闭的任务,通过后台单次调用成功,但并没有按照任务设置中的每半小时执行一次。上次运行时间和下次运行时间根本对不上,通过测试未支付订单也确未自动关闭。使用过的 ci 和 tp 的定时任务(同计划任务),运行脚本部分与 destoon 中的形式基本一致。ci 和 tp 使用 linux 系统计
phpstorm 中 JSON 化输出内容,调用 json_encode() 报错:ext-json is missing in composer.json。之前不去管它也没有任何的报错,但总想着能够去掉这样的干扰警告。找到一教程:mac下phpstorm2019.1版本提示ext-json is missing in composer.json - CSDN。方法一:修改 phpstorm 配置
关于数组操作,php 与 js 的方法都比较相似(甚至名称都是一样的)。但也有区别,就是 js 的方法基于数组对象调用,而 php 是调用库函数,对数组(地址传递)进行操作。之前写过 js 数组添加元素和删除元素,php 操作基本一致。// 从尾部插入一个或多个元素 array_push($arr, $var); // 删除最后一个元素 array_pop($arr); // 获取数组切片 arr
使用 catchAdmin(tp6 框架)二次开发时发现,ThinkPHP6 修改器似乎没有触发,不起作用。在 tp6 的官方文档中 修改器 一节明确指出了以下四种触发修改器的情况:模型对象赋值;调用模型的 data 方法,并且第二个参数传入 true;调用模型的 save 方法,并且传入数据;显式调用模型的 setAttr 方法;因为 save 的存在,正常保存数据的时候就会触发修改器。修改器这
今天在更新代码后,突然发现后台登录不了了,一直处于加载状态。通过卡点代码确定了问题的位置 session_start()。不明白为什么本地执行没有问题,更新代码后会出现这样的情况。百度搜索到的解决方案都是在 session_start() 之后再关闭 session:session_close()、session_write_close()。大致的解释是,每次只开启 session 而没有关闭,导
正常通过 microtime() 获取到的是一个这样格式的字符串 0.15852100 1612176374。这是一个 Unix 时间戳的微妙表示,前面的小数单位是秒。microtime() 函数可以接受一个 bool 类型的参数,传递是否返回一个浮点数。microtime(true) 返回 1612176526.1222,精度减小了。所以,转化为毫秒单位的整数即为:intval(microtim
$obj1 = new \stdClass; // Instantiate stdClass object $obj2 = new class{}; // Instantiate anonymous class $obj3 = (object)[]; // Cast empty array to object var_dump($obj1); // object(stdClass)#1 (0)
之前使用过 simple_html_dom 这一类库做解析,这一类库本身并不大,可以直接引入文件,让后封装到 helper 或者全局函数库里以备随时使用。下载文件:simple_html_dom.txt ,下载后将文件后缀修改为 .php 即可。github 原始地址:samacs/simple_html_domgithub 最新维护地址:Simple Html Dom Parser for PH
我习惯用 number_format 函数,返回类型为字符串:number_format($price, 2, '.', '');后面两个参数依次为小数点符号和千分之符号(默认,,所以需要手动去除)还有一个专门处理字符串格式化输出的方法 sprintf:sprintf('%.'.$precision.'f', $price);另附四舍五入方法 round ($val, $precision = 0
测试 php 序列化后设置 cookie 返回 false 时报错:php Warning: Cannot modify header information - headers already sent by...。网上找到了原因:在修改 header 信息之前存在输出内容。这与之前碰到过的 ob_start('ob_gzhandler'); 执行错误 和 header("Content-typ