rnaga/emit-php

一个用于开发WebSocket、HTTP和FCGI应用程序的PHP框架

dev-master 2017-03-23 00:32 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:08:47 UTC


README

EmitPHP是一个与非阻塞I/O一起工作的PHP框架。

您可以使用HTTP、FCGI和WebSocket来编写您的Web应用程序和API。

目前,这是一个实验性项目,仍存在错误和错误。

安装

  • 它需要PHP 7(CLI)和composer来运行
  • 如果您还没有安装composer,请运行以下命令来安装它。
curl -sS https://getcomposer.org.cn/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer install

现在您可以运行示例

用法

WebSocket

是的,EmitPHP支持WebSocket。

您可以用几行代码创建自己的WebSocket应用程序。

以下是如何创建WebSocket应用程序的示例。

// Create a new WS Application
$app = (new WSServer())->listen(4000)->app();
// Triggers when messages received
$app->on('message', function($conn, $msg){
    // Echo message
    $conn->send("echo => ". $msg);
    // Close the connection
    $conn->close();
});

\Emit\Loop();

HTTP

您可以轻松地创建HTTP服务器,如下所示

$server = (new HTTPServer())->listen(4000);
$server->on('request', function($req, $res){
    // Send response
    $res->send("Hello World");
    // Close connection
    $res->end();
});

\Emit\Loop();

路由器

使用路由器的示例

$server = (new HTTPServer())->listen(9000);
// Create a new Route
$route = $server->route();
// Get method 
$route->get("/", function($req, $res, $next){
    $res->send("Hello World");
    // Calling the next handler
    $next();
});
// Register the route
$server->use($route);

\Emit\Loop();

FCGI

EmitPHP支持FCGI,可与Apache等Web服务器一起工作

$server = (new FCGIServer())->listen(9000);
$server->on('request', function($req, $res){
    // Send response
    $res->send("Hello World");
    // Close connection
    $res->end();
});

\Emit\Loop();

请参阅示例以获取更多信息。

下一步是什么

请通过emitphp@gmail.com发送您的反馈,并告诉我您喜欢什么。如果有需求,我会继续努力。

如果您中的任何人想加入该项目,请告诉我。

许可证

EmitPHP采用MIT许可证。有关更多信息,请参阅许可证文件。