在系统开发中,我们需要完成短信、微信公众号、小程序、web消息、安卓消息、IOS消息的推送(push)以及拉取 (pull),而且消息的类型也是多种多样,我们来分析一下需求。消息的种类可以分为: 触发...
PHP处理浮点数进一、去尾(不进行四舍五入)
在开发中,我们经常遇到要把数字进行两位小数的处理,通常情况下我们使用四舍五入可以满足需求,而且mysql 的金额存储也是会进行自动的四舍五入处理。但是在某些需求中,往往只需要保留两位小数即可。例如:在...
PHP代码的优化之数据库的设计
在上篇文章 PHP代码优化之array_column() 使用(解决循环嵌套Sql的问题)中,我们使用 array_column来优化订单取商品数据,减少数据库查询次数。其实,从业务角度出发...
PHP代码优化之array_column() 使用(解决循环嵌套Sql的问题)
在开发中,我们会遇到一对多的绑定关系,比如订单:一条订单对应多条商品数据;商品价格:商品价格在不同用户等级或者VIP的价格优惠不同等等。下面以订单为例:需求: APP订单列表并展示商品信息且需要分页显...
解决ThinkPHP5小程序Wx.upload()上传图片为空的问题
微信小程序文件上传说明地址: https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFil...
PHP根据用户ID生成唯一的邀请码
在开发中,我们可能会遇到需要生成用户唯一的邀请码,来做一些邀请活动,接下来,我们思考如何生成唯一的邀请码,且可以根据邀请码获取到用户id。首先,我们可以考虑使用用户user_id 来生成邀请码,并生成...
使用PHP工厂模式实现阿里云通信短信的发送(ThinkPHP5)
在开发中,我们经常遇到手机号的验证,比如注册需要短信验证码,订单的处理需要短信通知用户等等,接下来,我们自己封装阿里云通信短信的发送。首先,我们定义一个接口类,用来约束短信发送的一些必要方法,如发送(...

解决ThinkPHP5不能执行批量Sql的问题
在开发过程中,我们可能遇到大批量的数据需要修改的功能,如果一条条修改,性能十分低下,因此,我们考虑,是否可以批量执行sql语句呢?在ThinkPHP5由于使用的PDO的 execute方法,由于PDO...
PHP获取昨天、今天、本周、上周、本月、上月
在开发中,我们往往需要对数据进行统计,而统计离不开时间维度的搜索,因此我们可以建立一个公共的时间类库来生成相关的时间范围。<?php class StatisticsDate { &n...
PHP 利用反射(ReflectionClass)调用其他类的方法
在相对复杂的项目中,我们可以利用分层来降低代码的耦合,并封装一些公用的方法,加快我们的开发速度。因此,在实际开发中,可以将代码分为: 控制器层、服务层、逻辑层、模型层等等.... 服务层: ...