JKDYAF基于YAF+SWOOLE的高性能API框架项目架构Linux+Nginx+PHP7+Mysql+Swoole+Redis+Yaf+Yacrequiredphp7.xmysqlyafyacswoole5.4.xredis为什么要写这个项目?最开始是用laravel写接口的,但是众所周知,laravel框架很重,性能更谈不上。肯定有人会问,既然追求性能,为什么不用现在很流行的Golang来写,而且性能很棒。其实一开始我也想用Golang来写,但是对Golang不熟悉,时间成本太高。选择YAF的原因是可以理解的,因为它快速且简单。而作为鸟哥的头号粉丝,他肯定会选择YAF。一开始也在网上找开源项目,但是没有找到自己满意的。不是没有用swoole,就是不支持多模块,有的模块封装的东西太多了。配置1.修改php.ini配置extension=yaf.so[yaf]yaf.environ=productyaf.cache_config=1yaf.use_namespace=1yaf.library="/path/JkdYafLibrary/"//全局类库的目录路径extension=yac.so[yac];是否启用yac,1表示启用,0表示禁用yac.enable=1;4M可以得到32768个key,32M可以得到262144个keyyac.keys_memory_size=4M;内存最大值yac.values_memory_size=64M;是否压缩数据ssyac.compress_threshold='-1';cli下使用yacyac.enable_cli=12关闭。项目app.ini,修改数据库mysql和redis的配置xxx"db.charset="utf8mb4"#redisconfiguration[redis]redis.host="x.x.x.x"redis.port=xxxredis.password=null3.项目修改jkdyaf.ini配置ip="0.0.0.0"port=9501启动phpbin/JkdYaf.phpphpbin/JkdYaf.php-d//daemonnginx配置服务器{listenxx;//端口服务器名称x.x.x.x;//IP或域名索引index.htmlindex.htmindex.php;根/路径/JkdYaf/public/;//项目路径location=/favicon.ico{return404;30天后到期;log_not_found关闭;access_log关闭;}location/{if(!-e$request_filename){proxy_passhttp://127.0.0.1:9501;//必须对应项目conf下的JkdYaf.ini}}location~.*\.(gif|jpg|jpeg|png|bmp|swf)${expires30d;}location~.*\.(js|css)?${过期1小时;}}后续会继续添加常用函数mysql连接池redis连接池定时任务yaconfyar队列github地址:https://github.com/crytjy/JkdYafgitee地址:https://gitee.com/jkdcry/JkdYaf
