- 博客(28)
- 资源 (9)
- 收藏
- 关注

原创 thinkphp6 session 为什么会失效
先来看官网文档下面的评论,我也是遇到同样的问题。、、同样按照官网的session配置,但是就是设置不了session的值,runtime 目录里面也没有文件。代码如下:namespace app\controller\index;use app\BaseController;use think\facade\Session;class Test extends BaseController { public function index(){ $fl..
2020-12-22 09:29:11
3052
1

原创 thinkphp6 多级控制器,二级目录访问
tp6的 controller 目录下面再新建一个文件夹,不使用路由的情况下 怎么访问,本文主要记录解决这个问题的办法。类似于这种目录结构。在不使用路由的情况下,配置关闭路由。方法一:在使用路由的情况,官方文档路由章节中给了说明。配置路由指向目录:Route::get('product/Product/index', '\app\controller\product\Product@index'); 使用这种路由配置可以解决,但是要写一个路由地址才可以,不是很方便..
2020-12-21 11:26:42
6548
1

原创 使用 Jmeter 测试 easyswoole 接口
服务器配置:cpu:2核、内存:4GB 带宽:带宽:1Mbps环境:nginx + php7.2 + mysql 5.7测试工具:Jmeter接口的代码和地址在前面两篇文章中可以找到。首先在window系统安装jmeter,配置JDK就可以使用了。打开jmeter,新建测试计划,登录接口测试。然后创建线程组:线程数填1000,ramp-up为0,持续时间为1秒,模拟 一秒 有一千个用户注册,即一秒钟一千个用户调用注册接口。然后创建接口请求:填写协议、i..
2020-05-20 15:15:24
691

原创 easyswoole 使用elasticsearch
看了一下 easyswoole 文档介绍,安装和配置过后直接就是插入操作,难道插入的同时会创建index、type和文档相关的属性吗?带着疑问操作了一下/** * @title 写入日志 * Created by PhpStorm * User: shanshui * Date: 2020/5/19 * Time: 10:32 */private function setLog($result = []){ $config = new \EasySwoole\Elastic
2020-05-19 14:06:59
966

原创 easyswoole 开发接口及后台(二)
整理了一下代码,上传到了码云:https://gitee.com/lhshanshui/easyswoole 后台最重要的就是权限验证 sys.php 基类,里面添加了一些公共的方法:tp 调用模板的方法:权限验证:从新写一个模型层分页的方法:后台写完这些东西,基本就可以写页面了。剩下的就是api接口项目了,坚持写完!...
2020-05-08 18:03:10
785
1

原创 easyswoole 开发接口及后台(一)
本人准备用easyswoole 写一套app接口和后台的项目,练习easyswoole,先从后台开始。后面把项目传到github上面。项目后台地址:http://180.76.174.107/Admin/Index/login环境:nginx+php+mysql账号:admin密码:admin后台使用easyswoole 官方的orm、图形验证码、session、task...
2020-05-07 18:02:16
2267
1

原创 easyswoole 图形验证码
easyswoole 官方api关于图形验证码的demo 是这样的$config = new Conf(); $code = new \EasySwoole\VerifyCode\VerifyCode($config); $this->response()->withHeader('Content-Type','image/png'); ...
2020-04-28 09:18:14
742

原创 php Elasticsearch 7.3 官方php文档demo执行报错
初次使用Elasticsearch,下载的7.3版本,找到了官网的php文档,地址如下:https://learnku.com/docs/elasticsearch-php/6.0/index-operations/2007执行创建索引操作竟然报错了,本人话了两个小时解决了这个问题,接下来我一步一步还原解决办法。1.首先执行官方的demo 代码如下:执行结果:这里报错...
2020-03-04 16:10:41
1228

原创 php 中文简体和繁体的转换
在网上找了很多办法转换,都没有一个成功的,有点过分的还要csdn积分下载对照表才行。我在github上面找到了相关资料。地址:https://github.com/uutool/hanzi-convert 使用方法上面介绍的很详细了,直接composer 就行了,我用的框架是tp5,我放在了extend 文件夹下面,编辑HanziConvert.php文件添加命名空间...
2020-03-04 11:19:18
2882
1

原创 php 处理库存超卖的几种处理方法
第一种方法:使用mysql数据库的锁机制。在事务中使用 for update 语句,在事务处理完成之后释放这一条数据。代码使用tp5的框架:public function mysqlLock(){ $goods_id = 26545; $sku_id = 26545; $price = 300; $user = ''; StoreOrderMo...
2020-03-03 10:02:41
3930
2

原创 PHP服务端 苹果支付(IAP)处理
公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。先上图: 下面我详细的讲一下每...
2019-09-04 16:57:24
8950
16
原创 thinkphp6+layui 多应用整合
thinkphp6+layui 多应用整合,接口项目和后台项目地址:http://121.4.125.12:8082/admin/接口文档:http://121.4.125.12:8082/apidoc官网:http://121.4.125.12:8082
2021-04-16 16:43:28
519
原创 smproxy thinkphp5 安装和配置
在github上面发现了一个基于swoole的数据库连接池,想试试,网上找了一圈,全是抄别人官方文档的。估计是转发的。自己就试了下。 官网网站:https://github.com/louislivi/SMProxy Api地址:https://smproxy.gitee.louislivi.com/#/ 环境搭建就不写了,我就直接讲配置,tp5项目怎么配置smproxy,前提是环境中必须要安装swoole。去掉php.ini 禁用的函数proc_open() t...
2020-11-12 17:51:52
832
2
原创 使用 easyswoole 注意的地方
easyswoole 是常驻内容,和我们一般用lnmp或者lamp方式执行原理不同,后者一次运行后释放php文件,swoole不一样,代码加载内存后不会释放,这样执行速度会很快,但是我们编码过程中也会遇到很多问题。我会吧我遇到的问题记录到这里。 1.常量累加要注意,一些常量定义增加后 会越来越大,注意释放。 2.谨慎使用单例模式,频繁调用的情况下谨慎使用单例模式,特别是多个线程同时使用一个单例类的时候,容易发生错误。 即多个线程同时去抢一个资源,几个例子,...
2020-09-08 17:41:29
1377
原创 redis 键空间通知 php tp5.0版本
项目有需求定时删除产品,使用redis缓存产品主键,设置过期时间,到期后应用redis的键空间通知删除数据库信息。框架是tp5.0。redis版本是3.0.php版本7.2原理我不写了,首先修改配置:打开redis配置文件redis.conf,找到notify-keyspace-events 将其设为Ex,E代表键事件通知,x代表过期事件,每当有过期键被删除时发送,然后重启redis使配置生效;我用的是window 操作系统,redis 目录如下,修改redis.confg
2020-07-14 15:12:12
501
原创 thinkphp5.0 自定义命令 操作数据库问题
tp5的命令行 模式不能使用模型层,就是操作不了数据库的问题。我的解决思路有两个。第一个:自定义命令里面既然不能使用模型层的话,就用接口的方式显示,用curl 调用本项目的接口 ,操作数据库。第二个:这个思路就是要理解tp框架的执行原理。首先浏览器请求过来到框架的入口文件,tp的入口文件做了很多事情,其中重要的一个就是加载配置,当然也包括加载数据库配置,然后就可以使用定义的模型层,操作数据库了,说道这里可能很多phper都已经明白了,命令行下,没有执行入口文件也就没有加载数据库配置,当然也就不能操作
2020-07-14 14:32:38
1758
原创 Mysql 一对多 一条数据对应多条数据 多条数据合并成一个字段显示
场景:产品列表显示产品的多个标签 mysql 查询。以往的解决办法都是查出先查出产品列表,在循环查询标签,多个标签用","隔开。这样查询列表查一次数据库,循环列表又要查询数据库多次。性能太差。表结构:产品表:CREATE TABLE `kx_product` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(200) NOT NULL DEFAULT '标题', `preview` varchar(200) NOT...
2020-06-30 11:51:03
9464
原创 easyswoole orm 查询字段中出现关键字报错
使用easyswoole orm 报如图错误:我使用的是一个很简单的orm 语法:public function getItemById(int $id):?array { return $this->create()->get($id)->toArray();}报错的位置就在 这一句,之前也用过 也没报错,开始没弄懂为什么会出现报错,然后仔细的阅...
2020-04-30 17:21:26
728
原创 Elasticsearch 使用kibana 查询索引数据
首先保证索引里面有数据,我查资料说是kibana 是用时间筛选数据的,所以必须保证类型属性里面必须有一个date时间格式的属性。但是新版的可以不用时间来检索。有一个选项。下面截图然后创建索引模式:选择已有的索引名称匹配,然后下一步可以选择已有的时间属性作为检索条件,还可以选择不使用时间检索。创建完成就可以在discover界面选择索引模式来查看数据了...
2020-03-05 10:42:53
11987
原创 easyswoole 自定义命令
看了下官网的介绍,感觉和laravel 自定义命令差不多。按照官方文档的例子代码如下:namespace App\Command;use EasySwoole\EasySwoole\Command\CommandInterface;use EasySwoole\EasySwoole\Command\Utility;class Show implements CommandInt...
2019-12-18 14:21:04
1053
原创 swoole coroutine协程消息队列
首先测试一个消息队列的例子:use Swoole\Coroutine as co;$channel = new co\Channel(100);co::create(function() use($channel){ for($i = 0; $i < 20; $i++) { co::sleep(1.0); $channel->pu...
2019-12-18 10:09:38
832
原创 swoole http服务器task投递异步任务
官网的task案例代码是在tcp服务器中写的,本人在想,http服务器也是server服务器中的一种,应该也可以投递task任务。一个简单的http服务器代码:$server = new Swoole\Http\Server('127.0.0.1',8888);$server->on('request',function($request, $response) us...
2019-12-17 14:59:12
1040
原创 php-设计模式之策略模式
//创建订单之后的一系列操作统一 接口interface Behavior{ //订单创建之后的操作 public function done(Body $body);}class Check implements Behavior{ public function done(Body $body) { echo "校验订单信息".PHP_...
2019-12-04 10:42:36
178
原创 php-设计模式之观察者模式
使用观察者模式实现用户注册。注册成功后台处理发邮件,处理详情等业务。观察者模式的原理这里就不写了。php要实现观察者模式,需要实现两个接口。具体代码如下: //用户类class User implements SplSubject{ //观察者模式 通知状态 public $status = null; // 1 注册成功 2 登录成功 p...
2019-12-03 15:41:35
209
原创 php 苹果登录 Sign In with Apple 服务端处理
苹果登录会验证用户:identityToken 的合法性,验证方法是JWT验证。完整的验证identityToken的代码可参考:https://github.com/GriffinLedingham/php-apple-signinuse AppleSignIn\ASDecoder;$identityToken = Request::instance()->para...
2019-11-20 17:33:29
4454
原创 解决git error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denie
昨天电脑中毒重装了系统,安装了 git 之后 设置了账户 ,邮箱在 git clone 的时候报错,界面如下:然后重新用户,邮箱,出现了这个问题,百度了很久也没解决,今天早上想着这个英文的意思 好像是权限不够,然后 我就去提示的这个文件夹下面 给了全部的权限,本人是window10 系统 给的是everyone 所有之后在 git config --syste...
2019-07-23 09:43:46
53785
12
原创 Nginx+apache+redis 负载均衡 session 共享配置
原理图: 服务器: 反向代理服务器 nginx:IP: 192.168.1.190 Web服务器 两台 apache Apache1: 配置:apache + php (php安装redis扩展)IP: 192.168.1.191 Apache2:配置:apache + php (php安装redis扩展) IP: ...
2018-05-15 13:59:46
945
laravel5.8+oauth2 实现api接口
2019-12-04
layuiadmin-master.zip
2019-09-17
生成二维码 代码
2019-03-11
微信开放平台-获取授权事件接收URL的component_verify_ticket php版本 版本太老了 不建议下载
2016-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人