当前位置: 首页 > 后端技术 > PHP

Think-Swoole:完全协程你的ThinkPHP应用

时间:2023-03-30 02:39:45 PHP

ThinkPHP是一款经典的国产开源PHP开发框架。ThinkPHP诞生于2006年,至今已有17年历史。ThinkPHP在国内应用广泛,很多知名企业都使用ThinkPHP搭建Web项目。ThinkPHP的早期版本主要运行在PHP-FPM模式下。为了解决长连接、高并发、阻塞IO等问题,ThinkPHP官方提供了Think-Swoole组件,底层全面适配Swoole协程,让ThinkPHP应用一键协程。github地址ThinkPHPThink-Swoole创建ThinkPHP项目composercreate-projecttopthink/thinktp使用composer命令快速创建一个新的ThinkPHP项目。现有项目可以跳过此步骤。引入Think-Swoole组件composerrequiretopthink/think-swoole启动HTTP服务直接在命令行下启动HTTP服务器。phpthinkswoole启动完成后,默认会在0.0.0.0:80启动一个HTTPServer,可以直接访问当前应用。相关配置参数可以在config/swoole.php中进行配置(详见配置文件内容)。如果本机已经安装了Nginx,可能会占用80。您可以修改config/swoole.php将其设置为其他端口。启动后通过http://127.0.0.1:9580/访问程序进行热更新。因为在Swoole服务期间PHP文件是在常驻内存中运行的,可以避免重复的磁盘读取和重复的解释编译,从而达到最高的性能。所以,更改业务代码后,必须手动重新加载或重启才能生效。Think-Swoole提供了热更新功能,检测到相关目录下的文件有更新后会自动重新加载,无需手动重新加载操作,方便开发调试。如果您的应用启用了调试模式,则默认启用热更新。原则上不建议在部署模式下开启文件监控。一方面会有性能损失。另一方面,在执行更新部署之前需要确认对文件的任何修改。热更新默认配置如下:'hot_update'=>['enable'=>env('APP_DEBUG',false),'name'=>['*.php'],'include'=>[app_path()],'exclude'=>[],当我们在应用的根目录下定义一个特殊的.env环境变量文件,并在其中设置APP_DEBUG=true时,会默认开启热更新。您也可以直接将enable设置为true。连接池Think-Swoole实现了数据库连接池的功能,包括MySQL、Redis等,要使用连接池,首先要开启Swoole一键协程。需要配置如下参数:'coroutine'=>['enable'=>true,'flags'=>SWOOLE_HOOK_ALL,],连接池配置参数如下:'pool'=>['db'=>['enable'=>true,'max_active'=>3,'max_wait_time'=>5,],'cache'=>['enable'=>true,'max_active'=>3,'max_wait_time'=>5、]]、参数说明:enable:是否启用连接池max_active:最大连接数,超过则不会创建新连接适当调整使系统负载最大化