PHP有许多Makarova,所以当他们聊PHP时,最好说清楚自己在说什么,比如说:PHP-FPM:传统的经典的静态语言采用形式PHP-CLI:两极化的强大的高操控性的采用形式PHP-扩充:C/C++级别的扩充潜能以内三种Makarova大家可能都或多或少的介绍许多:PHP-FPM最流行的代表者无疑是Wordpress,还有一大堆两极化常见的合作开发框架和开放源码商品,如ThinkPHP,Laravel,各类shop.PHP-CLI也是最近大行其道的合作开发形式,比如说Workerman/Swoole/React-PHP:能赢得更高的操控性(相对PHP-FPM,主要是频繁读取等环节),类似Java和Go的部署模式,更多的网络合作开发潜能,比如说长链接/微服务,也有更安全的读取形式,比如说以前的文件目录形式就废了,PHP不再以静态读取的形式运转.PHP-扩充却并非两个轻松教你做,繁杂的Zend-API让人却步,每个合作开发人员都劝自己,不要搞扩充,好好活着,没必要深入C/C++,还不如学GO了.事实上PHP的扩充也有许多合作开发形式,比如说swoole作者的PHP-X,和我如是说过的两个工程项目:PHP-CPP,他们把繁杂的Zend-API抽象PCB,让扩展的合作开发就像写PHP那样单纯(吗,采用PHP-CPP写扩充吗跟PHP一样单纯,TNUMBERX)两个有意思的Makarova以内几种用语称得上”官方的”,”标配的”,”相容的”用语,就是说你在PHP-FPM能运转的标识符,在PHP-CLI也能运转,在PHP-扩充中也能初始化成功.但这里我要如是说两个其他的Makarova,他们或许无法全然相容原来标识符的运转形式,但也为他们的许多销售业务提供了许多捷伊合作开发形式,满足他们许多特殊的要求.KPHPKPHP是两个PHP校对器,能将PHP标识符载入本地十进制文档.KPHP会将PHP的标识符转换成差值的C++标识符,接着校对生成的C++标识符并以PDPHTTP的形式运转.能把它认为是PHP的”转录”,因为他是把PHP的标识符”翻译”成C++的标识符,但最终效果来看,也称得上两个PHP的”校对器”.KPHP并非面向JIT的,大部份的了类别都是在校对时(译成C++时)推断的,不存在”慢启动”阶段.但:KPHP并并非两个万能的工程项目,他并非PHP的两个分支,也并非PHP的两个扩充,它是两个全捷伊分立的运转PHP标识符的形式,他有许多的管制,你可能没办法校对你原有的工程项目(比如说ThinkPHP).KPHP的众多管制:无法校对这类就无法校对的机能,无法比如说cp初始化表达式:$fname()无法校对破坏控制系统类别的标识符,比如说字符串中混合数字和对象许多PHP的细节优点,比如说计算机程序和非官方类KPHP和PHP本身有许多差异,比如说在PHP中,运转TNUMBERV12V4会收起,而在KPHP中,必须修复大部份错误才能运转,再比如说在KPHP中大部份的标识符都是H55N的,如果a文档须要b文档的表达式,那就require导入b文档,这时其他文档不须要导入b文档也能初始化到那个表达式,同时KPHP不支持evel,反射,字符串操作符等等优点.由于以内众多管制,一般情况下你并无法将你原有的销售业务直接采用KPHP载入十进制.但这并不代表者他不屑一顾,你能按照KPHP的规范标准去写标识符,比如说你控制系统中的某两个分立的小模块,接着把他载入十进制文档,至少这部分控制系统不须要担心标识符外泄的问题.操控性,你肯定想介绍它的操控性.事实上对于密集的算法逻辑,比如说插入排序,在网站给出的测试中:PHP7.4耗费2100微秒,KPHP 耗费480微秒,只有四分之一的时间如果将插入排序采用跟多的字符串表达式进行优化,KPHP耗费270微秒C++耗费220微秒KPHP的操控性几乎和C++一样在小贴士看来,KPHP的操控性确实不错,不过小贴士认为KPHP更棒的地方在于能将PHP标识符载入十进制文档,这样他们在递送控制系统(商品)的时候,全然能把最核心的技术和机能载入十进制,避免标识符外泄.peachpie另两个有意思的工程项目是peachpie,它能将PHP便以为.NET,这样就能赢得.NET的潜能,比如说虚拟化,十进制.它的目标如下:提高操控性,一般的将PHP载入.NET之后,操控性会得到一定的提升安全性.在标准化和可管理的.NET自然环境或.NET core自然环境指柱转,标识符都是校对过的虚拟化合作开发,能将PHP载入可移植类库,在大部份的.NET平台指柱转全然相容.NET,为peachpie编写的标识符与PHP全然相容双向操作,能用C#和PHP混合编写,通过.NET框架通信与之前如是说的KPHP而言,peachpie的目标和定位是为PHP提供两个捷伊运转平台,并且应当全然利用和相容PHP的全部生态,这当然是美好的愿望.但事实上,peachpie也并没有实现百分之百的PHP的优点,不过也完成了大部分:更完整的表达式表能参考他的官网.在小贴士看来,peachpie也为他们提供了两个捷伊递送形式,他们能将许多单纯地核心的最有价值的一部分机能采用peachpie来递送,全然能做到保护标识符的效果.PHP-JS这是两个很有意思的工程项目,他能采用PHP来运转JS的标识符,是的,能在PHP指柱转JS的标识符,就好像用PHP做了两个Node一样,当然并没有Node那样的生态.他能在PHP指柱转JS,并且和JS之间互通变量表达式,让小贴士很激动的是,也能互通资源类别和对象,比如说PDO,他们能在PHP中实例化两个PDO资源,接着传递到JS标识符当中:当然小贴士多次尝试安装PHP-JS,但他是两个C++扩充,遇到了许多新手问题,以后有机会会继续研究.PHP-CPP单纯来说,就是采用C++来为PHP编写扩展,并且能做到两个扩充只在两个站点读取.面对PHP的扩充,每个人都会告诉你,ZendAPI是繁杂的,混乱的,你驯服不了他,别浪费时间了.事实上是这样的,但PHP-CPP将ZendAPIPCB起来,并且提供了完善的文档和注释,使得采用C++合作开发扩充变得非常容易和优雅,写起来甚至和PHP标识符一样单纯.并且他们都知道,采用扩充来合作开发具体销售业务会有两个问题,没办法静态读取扩充扩充必须存储在指定的目录扩充一旦读取,对这个服务器上大部份的站点都生效事实上PHP-CPP完美的解决了这些问题,基本做法是,不要采用PHP原生的形式读取扩充,而是先用PHP-CPP做两个读取扩充的机能,采用C++的潜能,来做静态读取,并且能让你的扩充存储在任意位置,随意递送,同时也能让读取的扩充只对指定站点生效,不存在安全问题.结论小贴士在开头说大家不会PHP,其实只是一句玩笑,但对于国内大多数的合作开发展而言,包括PHP和其他的合作开发人员,都有两个错误的概念:PHP=PHP-FPM.就是说大部份人都认为PHP-FPM就是PHP,只能做HTTP.事实上并并非,小贴士如是说的这两个工程项目可能并并非主流趋势,但PHP-CLI的合作开发形式已经大行其道了,比如说ReactPHP在国外火了很久了,WebMan是workerman近两年推出的两个面向HTTP的两个解决方案,Swoole则被各类培训机构宣传.所以PHP到底有多糟糕呢?其实没那么糟糕,许多东西你不知道而已.