关于使用ThinkPHP 5.1 + PHPSocket.IO搭建简单的websocket聊天案例见之前的一篇文章(ThinkPHP 5.1下使用PHPSocket.IO实现websocket通讯),在此基础上做了较大的更新,本项目github地址: https://github.com/hsu1943/thinksocketio 本项目持续更新,有用到的朋友不要忘了点一下STAR,谢谢! 鉴于大 […]
ThinkPHP 5.1下使用PHPSocket.IO实现websocket通讯
PHPSocket.IO的官方介绍: PHPSocket.IO是PHP版本的Socket.IO服务端实现,基于workerman开发,用于替换node.js版本Socket.IO服务端。PHPSocket.IO底层采用websocket协议通讯,如果客户端不支持websocket协议, 则会自动采用http长轮询的方式通讯。PHPSocket.IO实现的Polling通信机制包括Adobe Fla […]
ThinkPHP 5.1自动生成模块及目录、文件
试用一下ThinkPHP 5.1这最新版的TP框架,创建项目很简单,在web根目录使用composer搞定: composer create-project topthink/think tp5 5.1.* –prefer-dist 这里面的tp5是新建项目的文件夹名了,5.1.*代表指定版本为>=5.1, <5.2的版本。 项目创建好了,然后我们就需要创建模块 ThinkPHP 5 […]
服务器MySQL报错ERROR 1030 (HY000): Got error 28 from storage engine
正在家里看美剧在,同事微信call我表示所有接口都不行了,服务器貌似崩了。 查找原因 查看后发现是MySQL报错: ERROR 1030 (HY000): Got error 28 from storage engine 一番google后发现是由于系统磁盘临时空间不足导致。 在服务根目录下运行: [root@iZ****tecZ /]# df -h Filesystem Size Used Av […]
ThinkPHP3.2.3静态缓存的使用
静态缓存可以大幅提升网站、接口的访问速度,对提升用户体验非常有帮助,刚好项目上也遇到这样的需求,在ThinkPHP3.2.3中实现前台页面静态缓存。 原理 静态缓存也就是将动态语言查询数据库然后渲染后的页面直接转换成文件(或者json)存储起来,当用户访问的时候,直接呈现给用户即可。 缓存前: 根据用户请求页面解析到对应控制器、方法; 查询数据库取出数据; 数据处理; 将数据渲染到模版输出; 缓存 […]
ThinkPHP3.2.3查询多次JOIN同一张表的处理
问题: 在项目开发中遇到问题,要查询的一张主表post中有两个字段都关联了user表的id,需要取出user的user_name字段,那么应该怎么查询呢? 解决: $posts_list = M() ->table(‘gc_post P’) ->join(‘gc_user U ON P.author_id=U.id’) ->join(‘gc_user U_M ON P.mento […]