欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

初识PHP中的Swoole

程序员文章站 2024-04-02 08:42:46
swoole是一种php高级web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率。利用swoole框架,开发一个复杂的w...

swoole是一种php高级web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率。利用swoole框架,开发一个复杂的web功能,可以在很短的时间内完成。

官方定义:

swoole:重新定义php

php的异步、并行、高性能网络通信引擎,使用纯c语言编写,提供了php语言的异步多线程服务器,异步tcp/udp网络客户端,异步mysql,异步redis,数据库连接池,asynctask,消息队列,毫秒定时器,异步文件读写,异步dns查询。 swoole内置了http/websocket服务器端/客户端、http2.0服务器端。

swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网、车联网、智能家居等领域。 使用php+swoole作为网络通信框架,可以使企业it研发团队的效率大大提升,更加专注于开发创新产品。

swoole 扩展安装及案例来源:

简单案例:

<?php
class server
{
private $serv;
public function __construct()
{
$this->serv = new swoole_server("0.0.0.0", 9501);
$this->serv->set(array(
'worker_num' => 8,
'daemonize' => false,
'max_request' => 10000,
'dispatch_mode' => 2,
'debug_mode' => 1
));
$this->serv->on('start', array($this, 'onstart'));
$this->serv->on('connect', array($this, 'onconnect'));
$this->serv->on('receive', array($this, 'onreceive'));
$this->serv->on('close', array($this, 'onclose'));
$this->serv->start();
}
public function onstart($serv)
{
echo "start\n";
}
public function onconnect($serv, $fd, $from_id)
{
$serv->send($fd, "hello {$fd}!");
}
public function onreceive(swoole_server $serv, $fd, $from_id, $data)
{
echo "get message from client {$fd}:{$data}\n";
}
public function onclose($serv, $fd, $from_id)
{
echo "client {$fd} close connection\n";
}
}
// 启动服务器
$server = new server(); 
<?php
class client
{
private $client;
public function __construct()
{
$this->client = new swoole_client(swoole_sock_tcp);
}
public function connect()
{
if (!$this->client->connect("127.0.0.1", 9501, 1)) {
echo "error: {$fp->errmsg}[{$fp->errcode}]\n";
}
$message = $this->client->recv();
echo "get message from server:{$message}\n";
fwrite(stdout, "请输入消息:");
$msg = trim(fgets(stdin));
$this->client->send($msg);
}
}
$client = new client();
$client->connect(); 

分别打开两个终端输入:php server.php  php client.php 即可看到效果!

swoole功能介绍

包含以下几个特色功能:

1、 类似orm的数据查询,提供sql封装器,让mysql的sql与php的array,会话,cache无缝结合。

2、app mvc分层结构,有效的程序结构分层,提高程序的可维护性和扩展性,实现低耦合,基于接口开发。

3、集成大量,实用的功能,比如方便的数据库操作,模板操作,缓存操作,系统配置,表单处理,分页,数据调用,字典操作,上传处理,内容编辑,调试等。

4、模板-数据反射系统,可以直接在模板中调用数据,提供很多标签,可是无需修改程序,只修改模板,即可实现网站各类更新维护工作。

另外的几个功能

1、swoole包含了大量类,提供众多的功能扩展,基本上web开发能够用到的功能类,大部分都可以在swoole框架中找到。

2、swoole拥有插件系统,fckeditor、adodb、pscws中文分词、中文全文索引系统、最新的key-value数据库思想,tokyotyrant,可以无限扩展框架的功能。