High performance HTTP Service Framework for PHP based on Workerman.

Comments
  • Webman fail with php8.1

    Webman fail with php8.1

    Hi, as the ppa:ondrej/php include now php8.1-rc5, I'm testing the frameworks for the benchmark.

    Workerman is working OK, but Webman is failing. The worst thing, it's that don't show any error in the first run, only: Verifying test query for webman caused an exception: ('Connection aborted.', BadStatusLine('No status line received - the server has closed the connection',)) that come from the test.

    In the second run, give me the same error and webman: worker[webman:43] exit with status 139. That look like a segmentation fault.

    But will be good if webman try to return a better error. PHP8.1 final will be released 25th from this month.

    opened by joanhey 26
  • After one month I put webman application on production server, its suddently stop

    After one month I put webman application on production server, its suddently stop

    I got many times, webman service stop for unknown reason and here's the last log

    [2020-11-21 00:21:14] default.ERROR: Trying to access array offset on value of type null {"exception":"ErrorException: Trying to access array offset on value of type null in /home/client/kitabemas/vendor/workerman/webman-framework/src/App.php:399
    Stack trace:
    #0 /home/client/kitabemas/vendor/workerman/webman-framework/src/App.php(399): {closure}()
    #1 /home/client/kitabemas/vendor/workerman/webman-framework/src/App.php(152): Webman\\App::parseControllerAction()
    #2 /home/client/kitabemas/vendor/workerman/workerman/Connection/TcpConnection.php(660): Webman\\App->onMessage()
    #3 /home/client/kitabemas/vendor/workerman/workerman/Events/Select.php(293): Workerman\\Connection\\TcpConnection->baseRead()
    #4 /home/client/kitabemas/vendor/workerman/workerman/Worker.php(2430): Workerman\\Events\\Select->loop()
    #5 /home/client/kitabemas/vendor/workerman/workerman/Worker.php(1555): Workerman\\Worker->run()
    #6 /home/client/kitabemas/vendor/workerman/workerman/Worker.php(1385): Workerman\\Worker::forkOneWorkerForLinux()
    #7 /home/client/kitabemas/vendor/workerman/workerman/Worker.php(1359): Workerman\\Worker::forkWorkersForLinux()
    #8 /home/client/kitabemas/vendor/workerman/workerman/Worker.php(542): Workerman\\Worker::forkWorkers()
    #9 /home/client/kitabemas/start.php(156): Workerman\\Worker::runAll()
    #10 {main}"} []
    

    and here's what happen if user_id session empty / reset. I still can't find the issue why session user_id is gone

    Next Illuminate\\Database\\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'post_author' cannot be null (SQL: insert into `wprg_posts` (`post_status`, `post_type`, `post_author`, `post_date`) values (draft, post, ?, 2020-11-24 22:11:52)) in /home/client/roemahmedia/public_html/vendor/illuminate/database/Connection.php:671
    Stack trace:
    #0 /home/client/roemahmedia/public_html/vendor/illuminate/database/Connection.php(631): Illuminate\\Database\\Connection->runQueryCallback()
    #1 /home/client/roemahmedia/public_html/vendor/illuminate/database/Connection.php(465): Illuminate\\Database\\Connection->run()
    #2 /home/client/roemahmedia/public_html/vendor/illuminate/database/Connection.php(417): Illuminate\\Database\\Connection->statement()
    #3 /home/client/roemahmedia/public_html/vendor/illuminate/database/Query/Processors/Processor.php(32): Illuminate\\Database\\Connection->insert()
    #4 /home/client/roemahmedia/public_html/vendor/illuminate/database/Query/Builder.php(2872): Illuminate\\Database\\Query\\Processors\\Processor->processInsertGetId()
    #5 /home/client/roemahmedia/public_html/vendor/illuminate/database/Eloquent/Builder.php(1508): Illuminate\\Database\\Query\\Builder->insertGetId()
    #6 /home/client/roemahmedia/public_html/vendor/illuminate/support/Traits/ForwardsCalls.php(23): Illuminate\\Database\\Eloquent\\Builder->__call()
    #7 /home/client/roemahmedia/public_html/vendor/illuminate/database/Eloquent/Model.php(1884): Illuminate\\Database\\Eloquent\\Model->forwardCallTo()
    #8 /home/client/roemahmedia/public_html/app/admin/model/AdminModel.php(227): Illuminate\\Database\\Eloquent\\Model->__call()
    #9 /home/client/roemahmedia/public_html/app/admin/controller/posts.php(59): app\\admin\\model\\AdminModel->newPost()
    #10 /home/client/roemahmedia/public_html/vendor/workerman/webman-framework/src/App.php(140): app\\admin\\controller\\Posts->add_post()
    #11 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Connection/TcpConnection.php(660): Webman\\App->onMessage()
    #12 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Events/Select.php(293): Workerman\\Connection\\TcpConnection->baseRead()
    #13 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Worker.php(2430): Workerman\\Events\\Select->loop()
    #14 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Worker.php(1555): Workerman\\Worker->run()
    #15 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Worker.php(1385): Workerman\\Worker::forkOneWorkerForLinux()
    #16 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Worker.php(1359): Workerman\\Worker::forkWorkersForLinux()
    #17 /home/client/roemahmedia/public_html/vendor/workerman/workerman/Worker.php(542): Workerman\\Worker::forkWorkers()
    #18 /home/client/roemahmedia/public_html/start.php(138): Workerman\\Worker::runAll()
    #19 {main}"} []
    

    I did use webman with nohup, it should be always start, but why it's stop many times, sometime in 3 days or less the webman service is stop

    opened by haidarvm 25
  • 关于 framework 里面的 support 与应用中的 support 有些重复的文件或代码

    关于 framework 里面的 support 与应用中的 support 有些重复的文件或代码

    关于 framework 里面的 support 与应用中的 support 有些重复的文件和代码?是后续有计划调整结构还是放错了文件? 目前给人的感觉结构有些混乱,比如: helpers.php,start.php, windows.php,bootstrap.php 等等。

    框架基础核心:workerman 框架应用核心:webman-framework 框架业务部分:app+其他

    希望代码组件及代码尽量简洁,方便阅读源码。

    opened by zoujingli 18
  • I try to put robots.txt domain.com/robots.txt but it's conflicted with my route config

    I try to put robots.txt domain.com/robots.txt but it's conflicted with my route config

    here's my route Route::any('/{slug}/', 'app\controller\read@slug');

    and i put robots.txt in public/robots.txt

    so how to exclude robots.txt in Route::any('/{slug}/' ?

    opened by haidarvm 16
  • 遇到个request()  得不到action的问题

    遇到个request() 得不到action的问题

    不知道什么时候开始的 __construct方法中使用request()后得不到该有的结果

    namespace app\backend\controller;
    
        public function __construct()
        {
            $request = request();
            echo 'init:';
            echo PHP_EOL;
            var_dump($request->action);
            echo PHP_EOL;
            parent::__construct();
            //得到默认的 where条件
            $this->where = $this->getWhere();
        }
    

    route配置未配置路由

    
    use Webman\Route;
    
    
    Route::any('/', function ($request) {
        return response('hello');
    });
    
    
    // 适配api目录版本控制器
    Route::any('/api/v1/{controller}/{action}', function($request, $controller, $action){
        $class_name = 'app\\api\\v1\\controller\\' . $controller;
        $request->controller = $class_name;
        $request->action = $action;
        $request->app = 'api';
        $controller = new $class_name;
        return call_user_func([$controller, $action], $request);
    });
    
    /*
    Route::any('/backend/{controller}/{action}', function($request, $controller, $action){
        $class_name = 'app\\backend\\controller\\' . $controller;
        $request->controller = $class_name;
        $request->action = $action;
        //$request->app = 'backend';
        $controller = new $class_name;
        return call_user_func([$controller, $action], $request);
    });
    */
    
    
    

    控制台打印

    
    init:
    NULL
    
    

    我记得以前是可以的,当我打开route.php中关于backend的注释的时候,控制台打印

    init:
    string(5) "lists"
    
    base:
    string(5) "lists"
    
    getWhere:
    string(5) "lists"
    
    init:
    string(5) "lists"
    
    base:
    string(5) "lists"
    
    getWhere:
    string(5) "lists"
    
    

    route.php 配置

    use Webman\Route;
    
    
    Route::any('/', function ($request) {
        return response('hello');
    });
    
    
    // 适配api目录版本控制器
    Route::any('/api/v1/{controller}/{action}', function($request, $controller, $action){
        $class_name = 'app\\api\\v1\\controller\\' . $controller;
        $request->controller = $class_name;
        $request->action = $action;
        $request->app = 'api';
        $controller = new $class_name;
        return call_user_func([$controller, $action], $request);
    });
    
    
    Route::any('/backend/{controller}/{action}', function($request, $controller, $action){
        $class_name = 'app\\backend\\controller\\' . $controller;
        $request->controller = $class_name;
        $request->action = $action;
        //$request->app = 'backend';
        $controller = new $class_name;
        return call_user_func([$controller, $action], $request);
    });
    
    

    我该如何处理这个问题,保证后续的框架变动影响不到我一开始想要达到的结果

    opened by god-daniel 12
  • 控制器public function __construct()  方法中 打印输出俩次

    控制器public function __construct() 方法中 打印输出俩次

    代码如下

    namespace app\backend\controller;
    
    use support\Request;
    use \app\backend\Base;
    
    class Test
    {
    
        public function __construct()
        {
            echo 'init';
            echo PHP_EOL;
         }
         public function index(Request $request)
        {
            return 1;
        }
    }
    

    请求index方法后控制台打印输出

    init
    init
    

    这种算是问题么?

    opened by god-daniel 8
  • tryToGracefulExit的进程退出问题

    tryToGracefulExit的进程退出问题

    protected static function tryToGracefulExit() { if (static::$_gracefulStopTimer === null) { static::$_gracefulStopTimer = Timer::add(1, function () { if (\count(static::$_worker->connections) === 0) { Worker::stopAll(); } }); } } 我看这段代码,是在请求数达到 max_request 配置的值之后,通过定时器判断当前请求连接为0 的情况下进行进程的重启,我想知道,什么情况下 static::$_worker->connections 会为0,我自己测试用浏览器请求接口,达到请求数并且接口没有再进行请求了,workerman的几个进程ID 都是不变的。 还有,这段代码不能改为如下吗?直接关闭得了。 protected static function tryToGracefulExit() { Worker::stopAll(); }

    opened by HyMax 7
  • vlucas/phpdotenv vs illuminate conflict after redis support added

    vlucas/phpdotenv vs illuminate conflict after redis support added

    # php -v
    PHP 7.2.24-0ubuntu0.18.04.7 (cli) (built: Oct  7 2020 15:24:25) ( NTS )
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
        with Zend OPcache v7.2.24-0ubuntu0.18.04.7, Copyright (c) 1999-2018, by Zend Technologies
    
    # git clone https://github.com/walkor/webman
    # composer install
    # composer require illuminate/redis
    # php ./start.php
    PHP Fatal error:  Uncaught Error: Call to private Dotenv\Repository\Adapter\EnvConstAdapter::__construct() from context 'Illuminate\Support\Env' in /root/webman/vendor/illuminate/support/Env.php:58
    Stack trace:
    #0 /root/webman/vendor/illuminate/support/Env.php(81): Illuminate\Support\Env::getRepository()
    #1 /root/webman/vendor/illuminate/support/helpers.php(276): Illuminate\Support\Env::get('APP_DEBUG', false)
    #2 /root/webman/config/app.php(16): env('APP_DEBUG', false)
    #3 /root/webman/vendor/workerman/webman-framework/src/Config.php(36): include('/root/webman/co...')
    #4 /root/webman/start.php(23): Webman\Config::load('/root/webman/co...', Array)
    #5 {main}
      thrown in /root/webman/vendor/illuminate/support/Env.php on line 58
    
    opened by latypoff 7
  • redis连接不上

    redis连接不上

    大佬,新年好,我用phpstorm的工具远程连接redis可以连接上,但是webman连接不上,提示Error: Call to a member function connection() on null in /Users/ryan/Desktop/api/roast/support/bootstrap/Redis.php:235

    opened by Xanyone 6
  • 无法获取POST请求的数据,但是可以获取GET请求的数据

    无法获取POST请求的数据,但是可以获取GET请求的数据

    使用使用浏览器或Postman进行GET请求时,$request->get();可以正常打印出GET请求的数据。 但是使用Postman进行POST请求时,Content-Type为application/x-www-form-urlencoded,使用$request->post();返回的是空数组,实际是有请求数据的。 同时$request->rawBody();返回的是空文本

    opened by amibk 6
  • [性能问题?]在http协议下,对于大数据的post,框架数据接收表现出比较慢.

    [性能问题?]在http协议下,对于大数据的post,框架数据接收表现出比较慢.

    我测试了 post数据是这样 map_id=102&item_id=274&mine_power=3&cur_energy=11409&cur_cache_power=-3&request_time=1603102417234 和post数据是这样 map_id=102&item_id=69&mine_power=18&unlock_fog_new=1&fog_data=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQAAAAEAAAEBAQEBAQEBAQEBAQEBAQEBAQICAQAAAQEBAQEAAQEAAAECAgICAgICAgICAgICAgICAgIBAAAAAAAAAAABAgEAAAECAgICAgICAgICAgICAgICAgICAQAAAAAAAAAAAQEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAAAAQEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAAAAQEAAQICAgICAgICAgICAgICAgICAgICAgIBAAAAAQABAgEAAAECAgICAgICAgICAgICAgICAgICAgIBAAAAAQECAgEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAECAgEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAACAgEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAABAgEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAABAgEAAAECAgICAgICAgICAgICAgICAgICAgIBAAAAAAECAQAAAAECAgICAgICAgICAgICAgICAgICAgEBAAAAAQICAgEAAAECAgICAgICAgICAgICAgICAgICAQAAAAAAAQICAgEAAAECAgICAgICAgICAgICAgICAgIBAAAAAAAAAAECAgEAAAECAgICAgICAgICAgICAgICAgICAQAAAAAAAAECAgIBAAECAgICAgICAgICAgICAgICAgICAgEBAAAAAAECAgEAAAECAgICAgICAgICAgICAgICAgICAgEAAAAAAAECAgEAAAECAgICAgICAgICAQICAQEBAgEBAQEAAAAAAQICAgEAAAECAgICAgICAgIBAAEBAAAAAQAAAAAAAAAAAQICAgEAAAECAgICAgICAgEAAAAAAAAAAAAAAAAAAAAAAQICAgEAAAECAgICAgICAgEAAAAAAAAAAAAAAAAAAAAAAQICAgEAAAECAgICAgICAgEAAAAAAAAAAAAAAAAAAAAAAQICAgEAAAECAgICAgICAgIBAAAAAAAAAAAAAAAAAAAAAAECAgEAAAECAgICAgICAgICAQAAAAAAAAAAAAEAAAAAAAECAgEAAAECAgICAgICAgICAgEAAAAAAAAAAAEBAAAAAQICAgEAAAECAgICAgICAgICAgIBAQAAAAAAAQICAQEBAgICAQEAAAECAgICAgICAgEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&cur_energy=11577&cur_cache_power=-18&request_time=1603102346563 的时候,处理时间会有明显的差别,后面的至少会比前面的慢4倍左右.

    opened by Iamzz-cn 6
  • 无法获取完整协议的URL

    无法获取完整协议的URL

    $request->url()和$request->fullUrl()均无法获取完整协议头的URL,建议新增方法完善,示例: ` /** * @return string */ public function protocol() { return $this->scheme() . '://'; }

    /**
     * @return string
     */
    public function scheme()
    {
        return strtolower($this->header('x-forwarded-proto', 'http'));
    }
    

    `

    opened by halo123450 0
  • Alternative to create-project to allow upstream merges

    Alternative to create-project to allow upstream merges

    I find it difficult to manually merge upstream webman changes in, so instead of using create-project, I first created an empty git repo https://github.com/user/myproject, then ran this to setup the repo:

    git clone https://github.com/walkor/webman
    cd webman
    git remote remove origin
    git remote add origin https://github.com/user/myproject.git
    git push
    

    then when I want to sync/merge upstream webman changes I do this:

    git clone https://github.com/user/myproject
    cd myproject
    git remote add upstream https://github.com/walkor/webman.git
    git fetch upstream
    git merge --no-ff upstream/master
    git commit
    git push
    
    opened by detain 1
  • Co existing with another event loop?

    Co existing with another event loop?

    Hi @walkor

    I'm using a binary library using ffi and the functionality I'm using that have its own event loop. Once I initialize it and it reaches this part of execution, it blocks, and Workerman fails to execute cause it's not reached.

    I know they both execute in the same thread, but thought to ask if there's a possible solution for such issue.

    What ideally I would like is having both operate normally without issues.

    Any ideas or workarounds 🤔

    opened by cayolblake 10
Releases(v1.4.7)
  • v1.4.7(Dec 12, 2022)

    • Monitor 服务支持通过 Monitor::pause() Monitor::resume() 暂停和恢复
    • Monitor 支持通过options参数控制是否开启文件监控及内存监控

    Full Changelog: https://github.com/walkor/webman/compare/v1.4.6...v1.4.7

    Source code(tar.gz)
    Source code(zip)
  • v1.4.6(Dec 6, 2022)

  • v1.4.5(Oct 31, 2022)

  • v1.4.4(Oct 30, 2022)

  • v1.4.3(Oct 19, 2022)

  • v1.4.2(Sep 19, 2022)

    What's Changed

    • app.controller_reuse is false by default
    • Change prefix http to https by @bangbangda in https://github.com/walkor/webman/pull/330

    New Contributors

    • @bangbangda made their first contribution in https://github.com/walkor/webman/pull/330

    Full Changelog: https://github.com/walkor/webman/compare/v1.4.1...v1.4.2

    Source code(tar.gz)
    Source code(zip)
  • v1.4.1(Aug 18, 2022)

  • v1.4.0(Aug 15, 2022)

    What's Changed

    • windows: load env before Config load by @krissss in https://github.com/walkor/webman/pull/315
    • fix:修复windows下 php 所在位置包含空格引发的文件检查失败 by @thh9 in https://github.com/walkor/webman/pull/316
    • Add error_reporting() level customize by @latypoff in https://github.com/walkor/webman/pull/318

    New Contributors

    • @krissss made their first contribution in https://github.com/walkor/webman/pull/315
    • @thh9 made their first contribution in https://github.com/walkor/webman/pull/316

    Full Changelog: https://github.com/walkor/webman/compare/v1.3.9...v1.4.0

    Source code(tar.gz)
    Source code(zip)
  • v1.3.9(Jun 8, 2022)

    What's Changed

    • windows下开发,每个进程统一workman 日志文件 by @imnotprogrammer in https://github.com/walkor/webman/pull/313

    Full Changelog: https://github.com/walkor/webman/compare/v1.3.8...v1.3.9

    Source code(tar.gz)
    Source code(zip)
  • v1.3.8(May 17, 2022)

  • v1.3.7(Apr 29, 2022)

  • v1.3.6(Apr 28, 2022)

  • v1.3.5(Apr 22, 2022)

    What's Changed

    • Support config server.stop_timeout
    • support protocol config by @qiqizjl in https://github.com/walkor/webman/pull/302

    New Contributors

    • @qiqizjl made their first contribution in https://github.com/walkor/webman/pull/302

    Full Changelog: https://github.com/walkor/webman/compare/v1.3.4...v1.3.5

    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Apr 1, 2022)

  • v1.3.2(Mar 23, 2022)

  • v1.3.1(Mar 20, 2022)

  • v1.3.0(Mar 11, 2022)

    What's Changed

    • Support controller suffix configuration (for example, app.controller_suffix = 'controller', if there is no key, create it yourself.)
    • The directory and class namespaces under the app are supported in uppercase (lowercase is recommended), and the support namespace is supported in uppercase (lowercase is recommended)
    • Move webman/support to webman-framework/src/support
    • 修复当不配置formatter而引起的报错 by @tingleiwuyan in https://github.com/walkor/webman/pull/297

    New Contributors

    • @tingleiwuyan made their first contribution in https://github.com/walkor/webman/pull/297

    Full Changelog: https://github.com/walkor/webman/compare/v1.2.5...v1.3.0

    详细日志

    Source code(tar.gz)
    Source code(zip)
  • v1.2.5(Mar 4, 2022)

    What's Changed

    • Support monolog processors setting by @teg1c in https://github.com/walkor/webman/pull/293
    • config/server.php support event_loop request_class settings for example 'event_loop' => Workerman\Events\Swoole::class,
    • config/app.php support public_path runtime_path settings

    Full Changelog: https://github.com/walkor/webman/compare/v1.2.4...v1.2.5

    详细更新参见最近更新

    Source code(tar.gz)
    Source code(zip)
  • v1.2.4(Feb 11, 2022)

    What's Changed

    • Phar support. by @fuzqing in https://github.com/walkor/webman/pull/282

    New Contributors

    • @fuzqing made their first contribution in https://github.com/walkor/webman/pull/282

    Full Changelog: https://github.com/walkor/webman/compare/v1.2.3...v1.2.4

    Source code(tar.gz)
    Source code(zip)
  • v1.2.3(Feb 10, 2022)

  • v1.2.2(Jan 10, 2022)

  • v1.2.1(Jan 10, 2022)

  • v1.2.0(Jan 9, 2022)

    What's Changed

    • Support Plugin. See https://www.workerman.net/doc/webman/others/plugin.html
    • Change FileMonitor to Monitor which support memory monitoring
    • Fix bootstrap by @latypoff in https://github.com/walkor/webman/pull/259

    Full Changelog: https://github.com/walkor/webman/compare/v1.1.3...v1.2.0 更新日志: https://www.workerman.net/page/update

    Source code(tar.gz)
    Source code(zip)
  • v1.1.3(Nov 21, 2021)

    What's Changed

    • 增加 LaravelDb的静态方法提示 by @Maoxp in https://github.com/walkor/webman/pull/244
    • Update Translation.php by @latypoff in https://github.com/walkor/webman/pull/251
    • Add support/bootstrap.php for start.php
    • Fix pcntl_alarm error of LaravelDb under windows

    New Contributors

    • @Maoxp made their first contribution in https://github.com/walkor/webman/pull/244

    Full Changelog: https://github.com/walkor/webman/compare/v1.1.2...v1.1.3

    Source code(tar.gz)
    Source code(zip)
  • v1.1.2(Oct 26, 2021)

  • v1.1.1(Oct 25, 2021)

  • v1.1.0(Oct 24, 2021)

  • v1.0.2(Oct 23, 2021)

    What's Changed

    Remove the dependence on vlucas/phpdotenv Add heartbeat to illuminate/database

    Full Changelog: https://github.com/walkor/webman/compare/v1.0.1...v1.0.2

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Oct 9, 2021)

    What's Changed

    • add select() methods by @Tinywan in https://github.com/walkor/webman/pull/207
    • 修改start.php中services变量名称错误 by @tingfeng-key in https://github.com/walkor/webman/pull/220
    • Update log.php by @dlsimple in https://github.com/walkor/webman/pull/187

    New Contributors

    • @Tinywan made their first contribution in https://github.com/walkor/webman/pull/207
    • @tingfeng-key made their first contribution in https://github.com/walkor/webman/pull/220
    • @dlsimple made their first contribution in https://github.com/walkor/webman/pull/187
    Source code(tar.gz)
    Source code(zip)
Owner
walkor
walkor
This package provides a high performance HTTP server to speed up your Laravel/Lumen application based on Swoole.

This package provides a high performance HTTP server to speed up your Laravel/Lumen application based on Swoole.

Swoole Taiwan 3.9k Jan 8, 2023
Kit is a lightweight, high-performance and event-driven web services framework that provides core components such as config, container, http, log and route.

Kit What is it Kit is a lightweight, high-performance and event-driven web services framework that provides core components such as config, container,

null 2 Sep 23, 2022
Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components

Spiral HTTP Application Skeleton Spiral Framework is a High-Performance PHP/Go Full-Stack framework and group of over sixty PSR-compatible components.

Spiral Scout 152 Dec 18, 2022
High performance, full-stack PHP framework delivered as a C extension.

Phalcon Framework Phalcon is an open source web framework delivered as a C extension for the PHP language providing high performance and lower resourc

The Phalcon PHP Framework 10.7k Jan 8, 2023
High-Performance Long-Living PHP Framework for modern enterprise application development

Documentation · Discord · Telegram · Twitter Spiral Framework is a High-Performance Long-Living Full-Stack framework and group of over sixty PSR-compa

Spiral Scout 1.4k Jan 1, 2023
Biny is a tiny, high-performance PHP framework for web applications

Biny is high performance. Framework comes default with response time of less than 1ms. Stand-alone QPS easily up to 3000.

Tencent 1.7k Dec 9, 2022
🔥High Performance PHP Progressive Framework.

The Core Framework English | 中文 The QueryPHP Application QueryPHP is a modern, high performance PHP progressive framework, to provide a stable and rel

The QueryPHP Framework 306 Dec 14, 2022
Motan - a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services

Motan-PHP Overview Motan is a cross-language remote procedure call(RPC) framework for rapid development of high performance distributed services.

Weibo R&D Open Source Projects 81 Nov 19, 2022
A server side alternative implementation of socket.io in PHP based on workerman.

phpsocket.io A server side alternative implementation of socket.io in PHP based on Workerman. Notice Only support socket.io v1.3.0 or greater. This pr

walkor 2.1k Jan 6, 2023
☄️ PHP CLI mode development framework, supports Swoole, WorkerMan, FPM, CLI-Serve

☄️ PHP CLI mode development framework, supports Swoole, WorkerMan, FPM, CLI-Server / PHP 命令行模式开发框架,支持 Swoole、WorkerMan、FPM、CLI-Server

Mix PHP 1.8k Dec 29, 2022
💾 High-performance PHP application server, load-balancer and process manager written in Golang. RR2 releases repository.

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Spiral Scout 45 Nov 29, 2022
🤯 High-performance PHP application server, load-balancer and process manager written in Golang

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Spiral Scout 6.9k Jan 3, 2023
Async HTTP proxy connector, tunnel any TCP/IP-based protocol through an HTTP CONNECT proxy server, built on top of ReactPHP.

clue/reactphp-http-proxy Async HTTP proxy connector, tunnel any TCP/IP-based protocol through an HTTP CONNECT proxy server, built on top of ReactPHP.

Christian Lück 43 Dec 25, 2022
Slim Framework HTTP cache middleware and service provider

Slim Framework HTTP Cache This repository contains a Slim Framework HTTP cache middleware and service provider. Install Via Composer $ composer requir

Slim Framework 107 Dec 15, 2022
Symprowire is a PHP MVC Framework based and built on Symfony, using the ProcessWire CMS as DBAL and Service Provider.

Symprowire - PHP MVC Framework for ProcessWire 3.x Symprowire is a PHP MVC Framework based and built on Symfony using ProcessWire 3.x as DBAL and Serv

Luis Mendez 7 Jan 16, 2022
An asynchronous event driven PHP socket framework. Supports HTTP, Websocket, SSL and other custom protocols. PHP>=5.3.

Workerman What is it Workerman is an asynchronous event-driven PHP framework with high performance to build fast and scalable network applications. Wo

walkor 10.2k Dec 31, 2022
Zephir is a compiled high level language aimed to the creation of C-extensions for PHP.

Zephir - is a high level programming language that eases the creation and maintainability of extensions for PHP. Zephir extensions are exported to C c

Zephir Language 3.2k Dec 27, 2022
Slim Framework flash messages service provider

Slim Framework Flash Messages This repository contains a Slim Framework Flash messages service provider. This enables you to define transient messages

Slim Framework 143 Dec 11, 2022
A Slim Framework Flash messages service provider

Slim Framework Flash Messages This repository contains a Slim Framework Flash messages service provider. This enables you to define transient messages

Slim Framework 143 Dec 11, 2022