zys是基於yaf和swoole的高性能服務框架
核心特性php
1.基於swoole提供分佈式服務器通信服務 2.基於thrift提供rpc遠程調用服務 3.基於HTML5提供在線網絡直播平臺服務 4.基於swoole提供同步異步數據庫鏈接池服務 5.基於swoole提供異步任務服務器投遞任務服務 6.基於vmstat提供服務器硬件實時監控服務 7.基於yac、yaconf提供共享數據、配置服務 8.基於zqf提供高併發計數器、紅包、二維碼服務 9.很好的支持網頁版console的shell服務
服務啓動html
須要php以cli模式運行/server/server.phpmysql
php server.php start php server.php stop php server.php restart
composer 安裝git
{ "require": { "qieangel2013/zys": "0.1.1" } }
thrift的rpc遠程調用github
本地訪問http://localhost/index/rpc (返回0表示成功)
數據庫鏈接池使用方法sql
服務文件在/server/mysql/DbServer.php 簡單地封裝文件在/application/library/mysql/dbclient.php 配置在conf/application.ini中 ;數據庫鏈接池配置 DbServer.async=true //配置是同步執行仍是異步執行,默認不配置表明異步執行,同步執行設置爲false DbServer.multiprocess=false //配置是否啓用多進程,默認不配置表明單進程阻塞模式,多進程模式要設置爲true DbServer.pool_num=20 //配置鏈接池mysql的數量 DbServer.port=9501 DbServer.logfile="/server/log/DbServer.log" DbServer.localip="192.168.2.13" 使用方法: $dbclient=new mysql_dbclient; //print_r($data); for ($i=0; $i <100 ; $i++) { $dbclient->query("INSERT INTO user(name) VALUES('$i')"); //echo "INSERT INTO user(name) VALUES('$i')"; } $data=$dbclient->query("select * from user"); $dbclient->close(); print_r($data); exit;
swoole實現簡單的視頻直播(能夠實時傳音頻、視頻、聊天)shell
錄製視頻頁面 http://localhost/index/swoolelivecamera 接受視頻頁面 http://localhost/index/swoolelive
vmstat服務器監控數據庫
本地訪問http://localhost/vmstat/
yac、yaconf提供共享數據、配置使用以下apache
須要安裝php擴展yac、yaconf //注意:須要安裝yaconf擴展,而且yaconf.directory=/tmp/yaconf 必須在php.ini裏設置,不能動態加載 echo Yaconf::get("conf.zqf"); //注意:須要安裝yac擴展,用於存儲共享變量,下面的實例做爲高併發計數器 $yac = new Yac(); $count=$yac->get('zqf'); if(!$count){ $yac->set('zqf', 1); }else{ $yac->set('zqf', $count+0.5); } echo $count;
高併發計數器、紅包、二維碼使用以下數組
須要安裝php擴展zqf 首先安裝php擴展zqf.so phpize來安裝 而後在php文件調用 dl('zqf.so');或者phpini里加載([https://github.com/qieangel2013/zqf) $obj=new zqf(); $counter= $obj->autoadd(0,1,0);(聲明只針對多線程) echo $counter; 紅包第一個參數是紅包總額,第二我的參數紅包數量,第三個參數默認表明拼手氣紅包,設置爲1的話爲普通紅包 拼手氣紅包 $hongb= $obj->hongbao(10,8);或者$hongb= $obj->hongbao(10,8,0);返回數組爲Array ( [0] => 1.33 [1] => 1.02 [2] => 1.28 [3] => 0.44 [4] => 1.37 [5] => 0.81 [6] => 1.81 [7] => 1.94 ) 普通紅包,每一個人數額同樣設置第三個參數 $hongb= $obj->hongbao(10,8,1);返回數組爲Array ( [0] => 1.25 [1] => 1.25 [2] => 1.25 [3] => 1.25 [4] => 1.25 [5] => 1.25 [6] => 1.25 [7] => 1.25 ) var_dump($hongb); $obj->savefile('https://www.baidu.com/s?wd=昌平香堂','./test.png',500);第一個參數是url,第二參數是保存路徑,第三個參數是二維碼長或者寬 $obj->savefile('https://www.baidu.com/s?wd=昌平香堂','./test.png',500,1);第一個參數是url,第二參數是保存路徑,第三個參數是二維碼長或者寬,第四個參數是決定是否透明,默認是不透明的
網頁版console的shell使用以下
本地訪問http://localhost/console
交流使用
zys框架交流羣:337937322
License
Apache License Version 2.0 see http://www.apache.org/licenses/LICENSE-2.0.html