App Server Framework (PHP Swoole)

授权协议 GPL
开发语言 PHP
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 国产
投 递 者 桑思远
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

  • 软件简介 App Server Framework (ASF)简介: 当前版本0.01试用版。 框架基于PHP-Swoole扩展开发,通过配置文件可以自定义各种应用协议,默认支持http协议。 框架本身是一个完整的tcp_server,不再需要apache,nginx,fpm这些,框架已包含log处理,mysql访问封装。 框架用fast-route库来做http route处理,直接映射到控制器

  • App Server Framework(ASF) 简介 当前版本0.01试用版。 框架基于PHP-Swoole扩展开发,通过配置文件可以自定义各种应用协议,默认支持http协议。 框架本身是一个完整的tcp_server,不再需要apache,nginx,fpm这些,框架已包含log处理,mysql访问封装。 框架用fast-route库来做http route处理,直接映射到控制器上,使用者只

  • #碳素云基于Swoole的服务端框架 ##功能 自动Session管理,通过集成SessionHandler来实现Session管理或通过session函数扩展实现 集成Model模型管理,移植TP的Model实现 自动缓存,基于Redis做缓存 环境要求: 1/Linux 2/php5.5+ 扩展要求 swoole redis msgpack json fileinfo pdo pdo-mysq

  • 使用Swoole的时候出现以下问题,如何解决呢?不是太懂,希望高手们能帮帮忙!谢谢了! 是运行https://github.com/matyhtf/webim里的开源项目:matyhtf/webim ubuntu 14.04 LTS 64位 php版本为:PHP 7.1.2 (cli) swoole redis php扩展已成功加载 swoole为2.0.1beta版本,redis为github上

  •   仓库地址 Aquarmini/easyswoole-demo​github.com    试用 EasySwoole 自定义命令 创建文件 <?php declare(strict_types=1); namespace App\Command; use EasySwoole\EasySwoole\Command\CommandInterface; class DemoCommand

  • 以下仅对 laravel 8进行说明 swoole的安装方法就不在重复了 测试环境php7.4 CentOS 8.1.1911  解决方案一 修改swoole的配置选项 'max_request'=>1     官方的解释是 设置worker进程的最大任务数,默认为0,一个worker进程在处理完超过此数值的任务后将自动退出,进程退出后会释放所有内存和资源。 如果每一个worker执行一次就释放,

  • 简介: 容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入. Laravel 的巨大成功就是构建在它非常强大的IoC容器 illuminate/container 基础上的. 而 PSR-11 定义了标准的 container , 让更多的 PHP 项目依赖容器实现依赖解耦, 面向接口编程. 另一方面, PHP 天生

  • 看swoole的官方文档,真的很迷茫,文档里都是些零碎的点,这些点怎么串起来的,还得需要自己摸索。比如手册里将不同的进程分开来讲,但实际开发的过程中,使用却是一起使用的。比如任务队列。手册里的资料有一下几个地方  https://wiki.swoole.com/wiki/page/481.html  https://wiki.swoole.com/wiki/page/134.html  https

  • 前言 我们使用PHP开发WEB应用基本都是使用传统的LAMP/LNMP模式来提供HTTP服务,这种模式一般是同步且堵塞的,若我们想使用PHP开发一些高级的特性(例如:异步,非堵塞,网络服务器等),那么Swoole无疑是最佳的选择,那什么是Swoole呢? PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了 PHP语言的异步多线程服务器, 异步TCP/UDP网络客户端, 异步MySQL

  • 看一段  GSF封装后的入口文件的代码 ,求佛祖保佑代码无bug  如此风骚。。。。 <?php /** * _ooOoo_ * o8888888o * 88" . "88 * (|

  • swoole是以cli运行的,然后长驻内存的。整个生命周期只有在启动的时间可以一次执行RINT过程, 之后所有的请求都在第三步以内完成。(这也是swoole更快的原因之一),这样的话,相关的php脚本如果被执行了一次,就永久性的长驻内存了,更新代码就没有效果了。如果想让代码生效就要重启swoole服务,这种做法是比较粗暴和繁琐。如何才能实现自动检测代码文件?代码自动生效? 在网上查到说使用runk

相关阅读

相关文章

相关问答

相关文档