php特点是用户与数据库 php运用于哪些领域( 二 )


快捷高效
PHP的内核是C语言编写的基础好效率高 , 可以用C语言开发高性能的扩展组件;PHP的核心包含了数量超过1000的内置函数 , 功能应有尽有很全面,开箱即用程序代码简洁; PHP数组支持动态扩容,支持以数字、字符串或者混合键名的关联数组,能大幅提高开发效率; PHP是一门弱类型语言,程序编译通过率高 , 相对其他强类型语言开发效率快;PHP天然热部署 , 在php-fpm运行模式下代码文件覆盖即完成热部署;PHP经过20多年的发展,在互联网上可以搜到海量的参考资料供参考学习 。
性能提升
PHP版本越高它的整体性能越高 , 根据官方介绍,PHP7.0.0 对比PHP5.6性能就提升了2倍,PHP7.4已经比PHP7.0快了约30%,PHP8.0在性能上又相对PHP7.4大约改进了10% 。PHP 8.0 引入了 JIT编译器特性,同时加入多种新的语言功能,例如命名参数、联合类型、注解、Constructor Property Promotion、match 表达式、nullsafe 运算符以及对类型系统、错误处理和一致性的改进 。PHP拥有自己的核心开发团队,保持5年发布一个大版本、1个月发布2个小版本的频率,最新的版本是PHP8.08。
跨平台
每个平台都有对应的php解释器版本,指针对不同平台均编译出目标平台的二进制码(PHP解释器),php开发的程序可以不经修改运行在windows、linux、unix等多个操作系统上 。
常驻内存
php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存实现资源复用,比较常用的做法是结合swoole组件编写cli框架 。
页面生命周期
在php-fpm模式下,所有的变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空,对程序员水平要求低 , 占用内存非常少,特别适合中小型系统的开发 。
运行机制:
PHP常见的运行模式有2种,分别是php-fpm 和php-cli。当PHP 选择运行在php-fpm模式下,所有的变量都是页面级的 , 无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空 。运行在php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存 实现资源复用,性能可以得到很大的提升,php-cli开发比较复杂能但是能够获取更高的性能,对开发者的要求比较高需要比较高的开发水平,比较常用的模式是结合swoole 组件编写cli框架 , 各种变量能保存在跨进程的高性能共享内存 Table,可以开发出支持热启动的php-cli可靠各类应用系统 。
php-fpm在PHP 5.3.3 版本成为了官方正式组件(2010-07-22) , 它提供了稳定可靠的进程管理服务,进程不足时候可以智能扩充数量,闲置时候可以自动回收销毁多余的进程,同时它对程序的容错能力很强大运行非常稳定,可以应付企业级的开发需求 。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互联网协议下进行的用户的输入输出,页面级生命周期各种资源用完即释放,不存在内存泄漏的问题 。php-fpm也提供有一些常驻内存的技术支持,例如PHP 7.4引入的opcache.preload也能实现局部的PHP类和函数的常驻内存 , 不过这个方法不够灵活,和服务器配置捆绑的太死了 。
php-cli因为能实现各类资源的常驻内存,所以可以资源复用,更高效完成多进程编程和异步编程 , 可以开发出负载能力更高的应用系统 。但是相对php-fpm的简单编程开发 , 开发者要注意很多的事项和需要做很多附加的控制器开发,否则就无法实现期待中的高性能 。
首先开发者需要去实现可靠的进程管理服务,保证系统进程遇到各类错误退出运行后能够自动创建新的进程,只有这样才能保证后续的服务请求有足够空闲进程可分配 。每个业务代码段都要做异常处理,让进程遇到非致命错误时候不会退出,因为进程重启意味程序和各类资源需要再次加载 , 这个过程性能消耗不?。灾挥薪涛榷ㄔ诵辛顺Wつ诖娌庞幸庖?。

推荐阅读