![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
thinkphp
名称正在更新……
学会保持一颗童真的心!
展开
-
TP6消息推送、队列的使用thinkphp-queue 实现消息订阅延迟推送
1、确保php安装了 redis扩展2、安装redis服务器3、安装think-queue直接打开composer.json添加:"require": { "php": ">=7.3.4", "topthink/framework": "~6.0", "topthink/think-queue": "3.0",}一、config下面queue.php设置默认二、生产者,这里分单任务和多任务<?phpnamespace app\ind..原创 2021-11-12 16:44:10 · 1586 阅读 · 0 评论 -
thinkphp5+ RebaitMq应用
环境准备工作:erlang和RabbitMQ安装: https://www.jianshu.com/p/3d43561bb3eeapache安装amqp扩展: https://www.cnblogs.com/88phper/p/8296066.htmlRabbitMQ命令:https://www.cnblogs.com/gongshun/p/10694659.html一、生产者<?php/** * Created by msciwang * User: fgc * Date:.原创 2021-11-05 12:58:56 · 411 阅读 · 0 评论 -
PHP之Trait的使用详解
php从以前到现在一直都是单继承的语言,无法同时从两个基类中继承属性和方法,为了解决这个问题,php出了Trait这个特性用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词,Trait不能实例化如下代码实例:<?phptrait Dog{ public $name="dog"; public function bark(){ echo "This is dog"; }}class.原创 2021-10-27 09:12:50 · 301 阅读 · 0 评论 -
thinkphp6利用jwt 开发api接口及中间件使用
安装:composer require lcobucci/jwt封装:app\api\service 下新建JwtAuth.php<?phpnamespace app\api\service;use Lcobucci\JWT\Builder;use Lcobucci\JWT\Parser;use Lcobucci\JWT\Signer\Hmac\Sha256;use Lcobucci\JWT\ValidationData;/** * 单例 一次请求中所有出现jwt的原创 2021-08-16 15:19:51 · 1359 阅读 · 0 评论 -
thinkphp6 header token头发送和接受
客户端<form action="{:url('index2')}"> <input type="text" name="user" id="user"> <input type="button" id="abc" value="tijiao"> </form><script>$("#abc").click(function(){let admintoken=6666; //可有服务端获取或客户端缓...原创 2021-08-13 16:22:10 · 1714 阅读 · 0 评论 -
Thinkphp 5.0版本整合微信扫码支付接口异步通知
同样的,我们先创建模型(Pay.php):<?phpnamespace app\index\model;use think\Validate;use think\Log;class Pay extends \think\Model{ private function _weixin_config(){//微信支付公共配置函数 define('WXPAY_APPID', "");//微信公众号APPID define('WXPAY_MCHID', "");//微信商户号...原创 2021-08-10 11:33:52 · 409 阅读 · 0 评论 -
php 处理数字小数点的常见方案
php保留两位小数并且四舍五入$num = 5566.56831; echo sprintf("%.2f", $num);php保留两位小数并且不四舍五入$num = 5566.56831; echo sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -2));php保留2位小数,只舍不入<?php/*** 小数保留后2位,只舍不入*/function round_num($num){...原创 2021-04-27 14:17:33 · 895 阅读 · 0 评论 -
ThinkPHP5.0集成微信扫码支付(PC端)
前两天发现微信官方测试扫码支付的链接崩了,公益404了,http://paysdk.weixin.qq.com,微信也不说一声,这让使用这个链接生成二维码的用户情何以堪......只好下载官方的demo放到自己网站上生成二维码了。趁热打铁,把微信支付demo集成到tp5里面,实现微信扫码支付~~~下载demo,目录结构如下:把 lib 文件夹拿出来,放到tp5根目录vendor文件夹下,重命名为wxpay:把 example 文件夹下的 WxPay.Config.php 拿出来...原创 2021-04-14 10:53:41 · 345 阅读 · 0 评论 -
thinkphp6 微信支付native扫码支付
native支付使用场景如下可以在https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1下载对应语言的sdk然后在extend目录下新建WxPay文件夹,将下载下来的lib文件夹中的文件全部放在WxPay中,再将后面要用到的native.php,notify.php,qrcode.php,phpqrcode文件夹也都复制到WxPay下注意要修改引用的路径,并在native.php中加命名空间,以便直接在控制器文原创 2021-04-14 10:35:36 · 693 阅读 · 0 评论 -
thinkphp6.0 多应用模式报错?
如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。composer require topthink/think-multi-app安装视图插件composer require topthink/think-view原创 2021-03-08 20:03:35 · 533 阅读 · 0 评论 -
thinkphp6的事件使用
事件先来看下官方文档是怎么样描述事件的。新版的事件系统可以看成是5.1版本行为系统的升级版,事件系统相比行为系统强大的地方在于事件本身可以是一个类,并且可以更好的支持事件订阅者。事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展。例如,我们通常会遇到用户注册或者登录后需要做一系列操作,通过事件系统可以做到不侵入原有代码完成登录的操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。如果不理解,可以看成是之前版本里面的钩子和行为。官方文档原创 2021-02-03 15:20:21 · 629 阅读 · 1 评论 -
thinkphp5 ajax 异步加载更多-向下滑动触发
实现效果:手机页面向下滚动加载数据前端代码:<div class="list-box"> {volist name="jifen_list" id="vo"} <div class="list"> <div class="pull-left list-l"> <h5&g...转载 2019-07-14 09:58:03 · 932 阅读 · 0 评论 -
thinkphp用phpqrcode生成二维码(含中间带logo、临时二维码)或生成微信二维码海报的方法
前期准备:1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/2.PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态)/***生成二维码图片(可生成带logo的二维码) * *@paramstring$data二维码内容 *...原创 2019-08-03 20:34:46 · 1304 阅读 · 0 评论 -
微信公众号上传素材并回复关键词推送该素材:thinphp开发微信公众号如何上传临时素材库
由于项目的需要,本人开始研究上传图片到素材库,于是实验成功,拿来分享下直接看代码//服务器入口地址public function token(){if(!isset($_GET["echostr"])){$this->responseMsg();}}//这里通过关键词回复获取公众号发送的图片,这里可自由定义事件public function responseMs...原创 2019-08-04 10:53:33 · 548 阅读 · 0 评论 -
微信公众号创建自定义菜单,并点击菜单获取公众号发送图片海报
此次和上一篇:微信公众号上传素材类似,这里部分代码就省略直接上代码:创建自定义菜单:public function menu(){$bb=[ "button"=>[ [ "type"=>"click", "name"=>"生成海报", "key"=>"qrcode001"/...原创 2019-08-04 14:19:17 · 3433 阅读 · 0 评论 -
thinkphp3+redis实现并发处理
基本思路是所有操作用过redis的队列和集合处理并发1.用户抢购队列(List),user_list2.商品队列(List),goods_list3.订单信息(Hash集合),order_info4.购买成功用户(Set集合),bought_listPS:1和2用来控制并发,队列的rPop是具有原子性的,即使处理并发,也是一个个处理,不会出现重复和超卖的情况。3则是用来暂时...原创 2019-09-08 09:05:55 · 634 阅读 · 0 评论 -
打造微信一样的聊天功能:tp5+workerman实现在线聊天客服功能(一)
国庆放假在家充充电哈,开始学习workerman,因为之前也一直想研究下socket通信,趁此机会把学到的分享给大家哈~~,话不多说直接上效果图:效果图是用户10与20间的聊天截图,因为界面是自己随便做的,比较丑请大神见谅哈。。。。。。。1,先到workerman官网下载GatewayWorker框架;2、将下载好的解压放在tp5的vendor里面,GatewayWo...原创 2019-10-04 18:36:07 · 3491 阅读 · 0 评论 -
打造微信一样的聊天功能:tp5+workerman实现在线聊天客服功能(二)
今天要分享的内容有两块,1、保存聊天记录到数据库(形成持久化);2、初始化打开聊天界面,显示最近的聊天记录。等不及了,那么开始吧……一、建立数据库表聊天记录表:用户名表:二、在《打造微信一样的聊天功能:tp5+workerman实现在线聊天客服功能(一)》代码的基础上修改代码:1、在events.php增加或修改(红框中的代码):2、视图层i...原创 2019-10-06 16:40:58 · 1813 阅读 · 0 评论 -
事务锁或redis实现商品库存出现超卖或秒杀场景
事务锁实现超库存解决:<?php$pdo = new PDO('mysql:host=127.0.0.1;port=3306; dbname=test','root','123456');$pdo->beginTransaction();//开启事务$sql="select `number` from storage where id=1 for UPDATE ";//利...原创 2019-10-11 08:53:09 · 778 阅读 · 0 评论 -
Thinkphp5 phpmailer QQ邮箱发送邮件
因为tp5需要命名空间支持,我的phpmailer类已经加好了命名空间,下载后解压直接放到vendor 目录下即可直接在控制器调用就行。百度网盘地址:https://pan.baidu.com/s/1eI0wqv9ydJQyayyUfyljKg至于基础的qq smtp设置我就不做赘述,qq邮箱设置里面可以直接找到(貌似新浪,163等所有的邮箱smtp开启方式都大同小异,基本都是在设置里面,而且...转载 2019-07-14 09:30:59 · 383 阅读 · 0 评论