- 博客(15)
- 收藏
- 关注
原创 swoole基础教程-15.集成apidoc
上节课我们讲完了面向切面编程,这节课我们来集成apidoc,在前后端分离的项目中,前端开发和后端开发经常需要对接接口,协商接口参数和返回数据,为了降低前后端沟通协商的时间成本和精力,往往就需要生成相应的接口文档,接口文档的形式有多种,各自适用于不同的情况,在这里,我们用的是apidoc 集成后的代码结构 common Index apidoc.json 安装apidoc 生成文档 ...
2019-09-11 09:41:05 226
原创 swoole基础教程-14.面向切面编程
上节课我们集成了数据校验和接口签名,这节课我们来集成切面,由于本人能力有限,集成的切面只是个基础版本,并没有java中切面功能那么强大 集成切面后的代码结构 BaseAspect Test BaseController AspectAfterPlugin AspectBeforePlugin sy_api/Index 测试 ...
2019-09-10 16:51:31 163
原创 swoole基础教程-13.数据校验与接口签名
上节课我们完成了服务通信,已经大致上完成了课程的主要目的,但是作为一个框架来说,这还只是刚开始的一个步骤而已,框架还需要很多其他功能的补充,今天这节课来完成的功能是数据校验 在api接口中,我们经常需要接收外部传递过来的数据,对于外部传递过来的数据都是不可信的,也许你要求传递个整数,外部就给你传个字母,这个时候就需要用到数据校验,过滤不合要求的数据,下面我们来做的就是这个事情 代码结构 Sim...
2019-09-10 12:10:06 231
原创 swoole基础教程-12.服务通信
上节课我们已经完成了添加rpc服务,这节课我们来完成api和user模块之间的服务通信,在真实的业务场景中,前端都是通过域名发送请求,请求最开始是由api模块来接收处理的,并且需要的话,经过api模块转发给user模块,所以,对于一个请求来说,api模块是一定会访问到的,user模块等却不一定,根据请求的不同而不同,所以请求之间只会由api模块流向user等其他模块,不会先到user模块 好了,废...
2019-09-09 15:31:25 220
原创 swoole基础教程-11.添加Rpc服务
到上节课为止,我们已经基本上把Http服务的事情完成了,但是对于分布式的系统,仅仅有Http服务是不够的,还需要有Rpc服务来配合,那么这节课我们开始讲解Rpc服务的搭建 集成Rpc后的代码结构 SyPack RpcServer Tool Project config_project syserver.ini 测试 至此,Rpc服务已经搭建完成,就差模块通信的处理了 ...
2019-09-09 12:00:53 288
原创 swoole基础教程-10.集成yaf(二)
上节课我们已经将yaf框架和swoole框架融合,完成了至关重要的一个环节,但是,对于一个框架来说,这还远远不够,yaf框架融合后的封装性还远远不足,我们还需要进行再次封装,满足业务开发的需要,降低业务的使用难度,下面开始继续封装yaf框架 封装后的代码结构 CheckConnectPlugin FinishServicePlugin MethodExistPlugin SimpleRo...
2019-09-07 17:26:51 696
原创 swoole基础教程-9.集成yaf(一)
上节课我们对Http服务进行了优化,扩充了框架和项目管理方面的功能,这节课我们正式开始集成yaf,将yaf作为业务框架集成进swoole,下面开始讲解 集成后的代码结构 BaseServer HttpServer helper_defines Index Bootstrap application.ini IndexDao 测试 至此,我们已经将swoole和yaf打通,...
2019-09-07 15:14:56 471
原创 swoole基础教程-8.Http服务优化
上节课我们完成了缓存redis集成到框架中,如果有信心,可以自己尝试集成memcache缓存到框架中来,框架到目前为主,已经和swoole官网的代码完全不一样了,为了后续框架开发的扩展性,可维护性,我们需要对现有的Http服务做一次优化,提升代码的健壮性,为后续的开发打下良好的基础 优化后的代码结构 BaseServer HttpServer 框架和项目代码分离 project...
2019-09-07 10:28:46 215
原创 swoole基础教程-7.集成redis缓存
上节课我们集成了日志组件,方便了接口调试以及排查错误,这节课的目的是集成redis缓存,在分布式系统中,redis是属于必用的缓存组件,在很多场景中都有应用,现在,就让我们来完成这个目的. 改造后的代码结构 CacheSimpleFactory RedisSingleton caches.ini HttpServer 测试 至此,缓存redis集成到框架完毕 ...
2019-09-06 21:03:30 197
原创 swoole基础教程-6.集成日志组件Seaslog
上节课我们完成了Http服务负载均衡,这节课我们的目标是集成日志,在一个框架中,日志绝对是最重要的组成部分之一,没有日志也就无法定位问题的根源,无法定位问题根源就无法真正的解决问题,因此,在完善框架的时候,我们最先来完善日志组件 目前开源的日志组件有很多,我这里选择的是seaslog,首先,这个组件是c扩展,相比其他的PHP组件,拥有更好的性能,其次,它支持多种日志记录方式,自定义日志格式,甚至可...
2019-09-06 18:21:52 574
原创 swoole基础教程-5.Http服务负载均衡
上节课我们完成了服务管理的脚本化和配置文件化的工作,同时,在上节课遗留下一个问题,原先可以通过8800端口访问服务,经过上节课的改造以后反而不行了,这节课我们来解决这个问题,好了,废话不多说,现在开始讲解 nginx.conf defaultserver.conf(用于防止服务器被域名恶意解析) demoapi.conf demoapi.server demoapistatic...
2019-09-06 17:13:08 216
原创 swoole基础教程-4.服务脚本化管理
上节课将swoole官网上的样例代码从面向过程转变成面向对象的方式了,完成了第一个小目标,但是在使用过程中,我们注意到了两点不足,1.配置是写死到代码中,对于项目管理来说非常不友好,每次配置有变动需要修改代码 2.服务启动比较笨拙,对于项目管理来说非常不方便,因此,为了后续开发的便捷,我们需要更新改造服务管理脚本 在改造服务管理脚本之前,先来整理下思路,由结果反推实现方式 项目相关的数据要做成配...
2019-09-06 16:22:37 299
原创 swoole基础教程-3.由面向过程编程转为面向对象编程
上节课我们写了个简单的demo并运行起来了,但是代码还是面向过程的方式编写的,这节课开始,我们开始将代码由面向过程的方式转变为面向对象的方式,另外,因为本课程的其中一个主要目的是结合swoole和yaf两个框架,所以在代码中,有很多以sy开头的内容,取swoole和yaf两个单词的首字母,作为框架的独特前缀,以此和其他的框架或者公共组件区分开来 改造后的代码结构 BaseServer Htt...
2019-09-06 10:45:25 439
原创 swoole基础教程-2.入门
从这节课程开始,正式进入到swoole学习,swoole是什么,能做什么事情,在它的官网上都有介绍,我就在这里不多说废话,首先,根据官方提供的文档以及生成帮助文件的项目,来写第一个demo,详细代码在简介中的github地址上有,后续不做累述 开放服务器端口8800 注: 如果你使用的是阿里云ECS服务器,还需要同时在安全组开放对应的端口 生成swoole帮助文档,方便IDE的自动提示等功能 ...
2019-09-04 20:30:20 502
原创 swoole基础教程-1.简介
大家好,本课程是为了帮助对于swoole有兴趣的入门者能够更快的熟悉和掌握swoole,同时也是对自己学过知识的回顾和强化,同时希望通过本人的抛砖引玉,能够让更多人有所收获. 本课程的目的主要有两个: 掌握swoole的基础用法 基于swoole实现RPC调用 在完成课程目标的过程中,因为维护管理等方面的原因,涉及到了nginx,lua,shell,linux系统等多个方面的知识,希望读者自行...
2019-09-04 13:29:54 337 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人