剑客
关注科技互联网

zapi:基于 Swoole + zphp 改造为专门用来开发接口的框架

zapi-根据zphp改造专门用来做http接口服务的轻量级框架

(当前只用来做app接口用)

开发交流群:138897359

注意事项

1.框架最新加入协程+mysql连接池,非阻塞的mysql查询大大提高了框架应对请求的吞吐量
2.php版本需要7.0+
3.swoole版本1.8.*
4.如果用到异步redis,需要安装hiredis,安装教程:http://wiki.swoole.com/wiki/page/p-redis.html

安装依赖包

composer install
1.没有安装composer的先安装composer
2.不会composer或者不喜欢composer的可以直接去我另一个资源库下载,地址:https://github.com/keaixiaou/zphp

运行zapi

本框架只支持http模式:
运行:
cd 到根目录
php webroot/main.php start|stop|restart|reload
访问IP:PORT
建议:
    如果是静态文件,可以直接用nginx代理
    如果是动态请求,最好使用nginx做代理转发

目录结构

zapi:基于 Swoole + zphp 改造为专门用来开发接口的框架

apps – mvc框架的controllers和service

service 通常的调用服务层

config – 配置文件

library – 对应的全局函数,每个work进程启动的时候会加载这个方法

路由

​ 根据pathinfo访问对应得controller,如ip:port/home/index/index则会访问home目录下的IndexController的index方法;如果不指定pathinfo则访问home目录下的IndexController的index方法

service

service层:
        $sql = 'select * from admin_user where id=1';
        $data['sql'] = $sql;
        $data['info'] = yield table('admin_user')->where(['id'=>1])->find();
        return $data;
controller层:
        //使用1-封装在service层,controller层也得写yield
        $testservice = new TestService();
        $data = yield $testservice->test();
        return $data;

Cache-redis(已经是异步非阻塞)

配置:

return [
    'redis'=>[
        'ip' => 'localhost',
        'port' => 6379,
        'select' => 0,
        'password' => '',
        'asyn_max_count' => 10,
    ]
];

使用:

$data = yield Db::redis()->cache('abcd');

只要在config目录下配置cache文件,即可在业务里调用缓存方法,如:

数据库

mysql(已经是异步非阻塞)

在config下配置mysql的配置文件,即可在业务中使用,你可以使用以下方法查询数据

$data = yield Db::table()->query('select* from admin_user');
$a = yield DB::table()->query('select*from admin_user where id =1');
$userinfo = yield table('admin_user')->where(['id'=>1])->find();

http client(已经是异步非阻塞)

$httpClient = new HttpClientCoroutine();
$data = yield $httpClient->request('http://speak.test.com/');

框架全部封装好.怎么样,这异步用起来是不是很简单^_^

mongo(还是同步阻塞的)

在config下配置mongo的配置文件,即可在业务中使用,如下

$data = Db::collection('stu_quest_score')->findOne(['iStuId'=>26753]);

ab测试-本机裸跑输出

zapi:基于 Swoole + zphp 改造为专门用来开发接口的框架

abredis测试,2个work

zapi:基于 Swoole + zphp 改造为专门用来开发接口的框架

ab测试-本机(mac air)查询mysql,4个work进程,每个work10个链接mysql连接池

zapi:基于 Swoole + zphp 改造为专门用来开发接口的框架

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址