微信号:gh_8a13fb93c557

介绍:探讨php高级技术

PHP手册中,你不知道的那些秘密

2015-11-07 18:37 php高级技术

作为PHP的开发人员,PHP手册绝对是必备的,很多人也已经习惯了去手册里面查找各种函数信息,孰不知PHP手册中不仅给我们提供了函数的信息,还提供了一个非常丰富多彩的PHP内核世界,今天我们就一起通过PHP手册,来开启PHP的内核探索之旅吧!

首先打开PHP手册看一下吧!

如上图所示,我用红色框起来的那一部分,就是PHP的核心介绍了,一起来展开它吧

里面主要包括了PHP的内存管理、变量使用、counter扩展、构建系统、扩展结构、PDO驱动、Zend Engine相关的一些东西,这些就构成了PHP的核心。

先来讲一下PHP的引擎历史吧。
在PHP4之前,PHP使用的并不是Zend引擎,但是由于PHP使用者越来越多,对性能的要求越来越高,所以,PHP界的这两个算是领袖人物:Zeev Suraski和Andi Gutmans就一起开发了一个新的新擎,取Zeev的前两个字母和Andi的中间两个字母,合起来就成了“Zend”,由于它是一个引擎,所以全称叫做 “Zend Engine”,简称ZE。ZE随着PHP4和PHP5也在不断的发展着,目前的最高版本为ZE2。

借助ZE引擎,PHP的性能得到了非常大的提升,而通过ZE的扩展机制,PHP的功能也得到了非常大的完善,每一次的版本升级,PHP官方都会为PHP加 入一些新的东西,我们称之为新特性,并加入一些非常优秀的扩展,比如我们现在常用的PDO扩展,这些功能让PHP在服务器端变得越来越强大,也让开发人员 能够更加方便快捷高效的去开发web应用了。

上面大概讲了一下PHP的引擎,现在回归正题,继续谈PHP的手册。
PHP的语法部分主要集中在手册中的语言参考这一主题下,而函数参考主题,则是PHP的各种扩展所在了,我们常用的各种函数基本上都是以扩展的形式存在于PHP中的,打开看一下吧:

这里面有我们常用的时间相关的扩展,我们使用的处理时间戳的函数大部分来源于此,数据库扩展中则包含了我们最常用的PDO扩展了,我们操作文件系统所用的 各个函数,则在文件系统相关扩展中,发邮件的函数存在于邮件相关扩展中,我们对Session的处理函数,则包含在Session扩展中,我们使用的各种 字符串处理函数,则包含在文本处理这个扩展中, 还有很多我们常用的和不常用的各种扩展,大家就自己来细细查看吧!

这里顺便再讲一下PHP的扩展机制吧!
PHP一共有三种扩展机制,第一种是扩展PHP的Zend引擎,第二种是在安装编译PHP时,把各种扩展编译进PHP的源码中,第三种是通过引入扩展模块的方式来进行扩展,下面来大概讲一下这三种扩展方式。

对于第一种方式—— 扩展PHP的Zend引擎,它需要改动PHP的源码,而且在PHP升级时,你的改动就没有用了,同时又要求C语言的基础非常好,所以是最不推荐的方式。
对于第二种方式——把
各种扩展编译进PHP的源码中,是比较推荐的方式,这就是我们在Linux环境中常用的安装方法,由于把扩展打入了PHP的源码,所以执行效率非常高,缺点是PHP运行时占用的内存会稍微大一点,不过其优点已经远远大于其缺点了,所以这也是生产环境下,最常用的方式。
对于第三种方式——
引入扩展模块,就通常是在PHP已经编译安装过了,现在需要加入一些新的扩展功能,但重新编译源码进行安装又太麻烦,而变得不大可能时,才选择的一种扩展方式,效率虽会低一点,但非常灵活,所以也是非常常用的扩展方式。

例如:
当我们需要使用memcache缓存功能了,或者需要使用redis数据库的扩展功能了,那么重新编译一下PHP的源码,把这两个扩展加进去就显得有 点麻烦了,于是我们就把memcache和redis的扩展,单独编译成PHP的扩展模块(在windows环境下这种扩展文件是后缀名为.dll的文 件,在Linux环境下,是后缀名为.so的文件),编译完成后,把扩展模块的PHP扩展文件(比 如:php_redis.dll,php_memcahce.dll,php_redis.so,php_memcache.so)复制到PHP的扩展目 录下,然后修改一下php的配置文件——php.ini,把你新加入的扩展写进去,然后快乐的重启服务器,写一个phpinfo(),来查看一下它是否生 效了吧!

结语:
PHP的手册中写了大量了关于其核心和扩展机制的内容,理解并慢慢地掌握这些内容,对于我们成为PHP的编程高手是非常有帮助的。而PHP手册中的各种扩展,也是一个信息的宝库,比如,PHP扩展中的其它服务,我们打开看一下吧:

这里面就包含了常用的curl、ftp、http、java、sockets、ssh等各种扩展,通过这些扩展,我们要实现相应的功能是不是就方便很多了呢,所以经常看看PHP手册,有针对性的研究一下某些扩展,学习一下其相关的技术,对我们的帮助是非常大的。


 
php高级技术 更多文章 Coding 孙宇聪:《人,技术与流程》 关于C++、PHP和Swoole PHP 之父:PHP7 性能翻倍关键大揭露 Hello World 程序的起源与历史 世界上最好的语言将于2015年11月12日发布PHP7正式版
猜您喜欢 自动化测试工厂 我泡在 GitHub 上的 177 天 内存泄露之常见问题解决「初级篇」 OKhttp2.6强制请求缓存,通过反射自由读取缓存数据 程序员们的工资到底有多高?