php常用扩展有哪些:按场景选用

php常用扩展有哪些,按业务分为数据库、图像处理、网络请求、缓存、加解密、文本处理六类,生产环境部署时,基础网站至少开启pdo、mbstring、openssl,图片业务额外配gd,接口服务优先装curl,redis项目搭配redis扩展,Windows环境使用dll文件加载,Linux环境多通过pecl或者源码编译安装,PHP8.0及以上版本部分扩展改为内置,无需单独编译,该清单适用于LNMP、宝塔面板、DockerPHP镜像搭建的线上业务,不适用于裁剪过的极简PHP二进制包,这类包会移除大量扩展,无法通过常规方式启用。

php常用扩展之数据库类

pdo_mysql是mysql数据库的pdo驱动,支持预处理语句,降低SQL注入风险,主流框架默认依赖这个扩展,不要优先选用mysql扩展,它已经停止维护。mysqli提供面向对象和过程式两种写法,支持事务与多语句查询,适合老旧项目迁移,和pdo_mysql只选其一也可以同时开启。pdo_pgsql用于对接PostgreSQL,pdo_sqlite内置轻量文件数据库,适合小型本地存储场景。

优先选pdo体系。

php常用扩展之网络与请求类

curl用于发起HTTP、HTTPS请求,支持代理、超时控制、证书校验,对接第三方支付、短信、开放平台接口基本都依赖它,PHP内置的file_get_contents在复杂HTTPS场景稳定性弱于curl。sockets提供底层套接字能力,用于TCP长连接、自定义通信服务,普通网页业务一般不会开启。openssl负责SSL加密、RSA签名验签、HTTPS通信,几乎所有线上环境都必须开启,很多框架加密组件底层依赖它。

php常用扩展之缓存与性能类

redis扩展是PHP操作Redis服务的原生驱动,相比predis纯PHP客户端,它的执行速度更快,适合高并发的会话存储、热点数据缓存、限流计数场景。memcached适配Memcached缓存服务,支持分布式缓存节点,多节点失效策略配置更灵活。opcache属于字节码缓存扩展,PHP5.5之后内置,开启后缓存编译后的脚本字节码,大幅减少重复解析编译开销,是提升PHP服务响应速度的低成本手段,配置时需要合理设置缓存内存与验证频率,频繁发布代码的站点可调低文件校验频次。

php常用扩展之图像处理类

gd支持生成验证码、缩略图、加水印,处理jpg、png、gif格式图片,部署时要确认libpng、libjpeg依赖库同步安装,否则会缺失部分图片格式支持。imagick基于ImageMagick库,图片处理能力更强,支持psd、webp等更多格式,处理大尺寸图片、矢量图时效果优于gd,服务器内存资源占用会更高,流量小的图片业务使用gd就足够。

php常用扩展之文本与编码类

mbstring处理多字节字符串,中文截取、长度统计、编码转换都依靠它,避免中文乱码、字符串截断出现半个字符的问题,国内站点基本强制开启。intl封装ICU库,提供国际化功能,日期格式化、多语言排序、货币格式化场景使用,面向海外业务的项目才会用到。bcmath实现高精度数学运算,规避浮点数精度丢失问题,金额计算、区块链相关计算场景适合启用。

扩展名称适用场景资源开销推荐等级
pdo_mysqlmysql数据库读写低高
curl第三方接口调用低高
redisredis缓存操作中中
imagick复杂图片处理高低

pecl是PHP官方扩展仓库,非内置扩展大多从这里获取,安装前需要匹配你的PHP版本号,版本不匹配会直接报段错误,服务无法启动。你可以在php.ini里搜索extension配置项开启扩展,也可以用php-m命令查看当前已经加载成功的扩展列表,排查缺失依赖。

PHP8.1起,filter、hash这类扩展固定内置,无法关闭,不用再手动添加配置。

fpm模式下修改php.ini后,必须重启php-fpm进程,新的扩展配置才会生效,只重启nginx或者apache不会加载新扩展。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于php常用扩展有哪些的文章欢迎访问:百科