App Server Framework (PHP Swoole)

GPL
PHP
跨平台
2015-11-03
笑天居士

App Server Framework (ASF)简介:

  • 当前版本0.01试用版。

  • 框架基于PHP-Swoole扩展开发,通过配置文件可以自定义各种应用协议,默认支持http协议。

  • 框架本身是一个完整的tcp_server,不再需要apache,nginx,fpm这些,框架已包含log处理,mysql访问封装。

  • 框架用fast-route库来做http route处理,直接映射到控制器上,使用者只要写具体的控制器方法就可以实现rest风格的API。

  • 至于性能,可以很低调的说:相当高,具体可以参考swoole相关文档: http://www.swoole.com/

安装运行

环境:linux2.6+、php5.5+、mysql5.5+、swoole1.7.20+
下载:https://github.com/xtjsxtj/asf

tar zxvf asf.tar.gz  
cd asf  
php ./bin/asf.php test_http start  

也可以直接进入具体server目录直接运行入口脚本文件:  
cd asf/apps/test_http
php ./index.php

查看当前server进程状态:
php asf/bin/asf.php test_http status

查看所有server运行状态:
php asf/bin/asf.php list

http_server开发

当protocol为http(不设置则默认为http),server运行为http_server,这种模式下默认不需要做任何额外的配置,系统会按默认的路由规则分发到具体的控制器中处理,开发者只需要写具体的控制器和方法就可以。

下面是http_server,test_http的开发流程:

  • server配置文件:apps/test_http/config/server_conf.php

<?php

class Swoole_conf {
    public static $config=array(
        'server_name' => 'test_http',  //server名称    
        'log_level' => NOTICE,         //跟踪级别
        'listen' => 9501,              //listen监听端口
        'log_file' => '/asf/apps/test_http/index.log',  //log文件
    );   
}
  • worker配置文件:apps/test_http/config/worker_conf.php

<?php

class Worker_conf{
    public static $config=array(
        'log_level' => DEBUG,
        'mysql' => array(
            'socket' => '/tmp/mysql.sock',
            'host' => 'localhost',
            'port' => 3306,            
            'user' => 'user',
            'password' => 'password',
            'database' => 'test',
            'charset' => 'utf8',
        ),
}
  • 唯一主入口脚本:apps/test_http/index.php

<?php>
define('BASE_PATH', __DIR__);
require_once BASE_PATH.'/../../lib/autoload.php';

$server = new swoole();
$server->start();
  • 控制器:apps/test_http/controller/index_controller.php

<?php

class index_controller extends base_controller {       
    public function index() {
        log::prn_log(DEBUG, json_encode($this->content));
        log::prn_log(DEBUG, json_encode($this->param));         

        return 'ok';
    }
}
  • controller基于父类base_controller实现,而base_controller必须基于lib/controller.php的controller实现。

  • 在这种默认的配置下:访问 http://localhost:9501/index/index 路由将会执行上面index_controller控制器中的index方法,http调用返回的结果是:ok

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

win7 docker-toolbox 安装swoole环境

相关 系统: window7 编辑器: sublime3 docker: 下载toolbox安装, ..略 swoole是php扩展 swool 不支持在windows安装 使用docker运行swoole代码 参考: What's the best way to share files fr...

2018/05/12 22:31
441
0
Camera Framework学习笔记(1)

不知不觉学习camera已经有一年多了,今天就把之前整理的学习笔记分享出来,以作后用。本文是以4.1的Camera Framework为例, 4.4 Camera Framework有比较大的改动。但官方的APP却还未使用。...

2014/02/26 23:52
1K
0
html5直播

HTML5 LIVE VIDEO STREAMING VIA WEBSOCKETS

2017/10/18 10:22
238
0
玩了一下websocket

nginx配置 ``` location /wsapp/ { proxy_pass http://0.0.0.0:9501; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } ``` 后端...

2016/12/03 23:14
40
0
websocket基础---stomp英文文档STOMP Over WebSocket

文章来自:http://jmesnil.net/stomp-websocket/doc/

2018/05/02 22:02
118
0
Flutter 之 APP 生命周期

State 的生命周期,定义了 Widget 的加载到构建的全过程,可以利用其回调机制根据 Widget 的状态选择合适的时机做合适的事情。而 APP 的生命周期,则定义了 APP 从启动到退出的全过程 如果想...

10/05 21:15
3
0
asp.net

asp.net

2014/05/22 00:45
41
0
rabbitMQ镜像集群配置

原理: 通过连接多个机器组成单个逻辑中间服务器,机器之间通信借助于erlang的消息传输,要求集群中所有节点必须有相同的erlang cookie;节点间网络必须可靠,且运行相同版本的rabbitmq和erl...

2018/08/24 20:24
290
0
iOS 视图,动画渲染机制探究

腾讯Bugly特约作者:陈向文 终端的开发,首当其冲的就是视图、动画的渲染,切换等等。用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅。UI就是 App 的门面,它的...

2015/12/18 11:48
203
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部