Skip to content

Latest commit

 

History

History
18 lines (12 loc) · 1.89 KB

intro.md

File metadata and controls

18 lines (12 loc) · 1.89 KB

7.1 概述

扩展是PHP的重要组成部分,它是PHP提供给开发者用于扩展PHP语言功能的主要方式。开发者可以用C/C++定义自己的功能,通过扩展嵌入到PHP中,灵活的扩展能力使得PHP拥有了大量、丰富的第三方组件,这些扩展很好的补充了PHP的功能、特性,使得PHP在web开发中得以大展身手。ext目录下有一个standard扩展,这个扩展提供了大量被大家所熟知的PHP函数:sleep()、usleep()、htmlspecialchars()、md5()、strtoupper()、substr()、array_merge()等等。

C语言是PHP之母,作为世界上非常优秀的一门语言,自它诞生至今,C语言早就了大量优秀、知名的项目:Linux、Nginx、MySQL、PHP、Redis、Memcached等等,感谢里奇带给这个世界如此伟大的一份礼物。C语言的优秀也折射到PHP身上,但是PHP内核提供的功能终究有限,如果你发现PHP在某些方面已经满足不了你的需求了,那么不妨试试扩展。

常见的,扩展可以在以下几个方面有所作为:

  • 介入PHP的编译、执行阶段: 可以介入PHP框架执行的那5个阶段,比如opcache,就是重定义了编译函数
  • 提供内部函数: 可以定义内部函数扩充PHP的函数功能,比如array、date等操作
  • 提供内部类
  • 实现RPC客户端: 实现与外部服务的交互,比如redis、mysql等
  • 提升执行性能: PHP是解析型语言,在性能方面远不及C语言,可以将耗cpu的操作以C语言代替
  • ......

当然扩展也不是万能,它只允许我们在PHP提供的框架之上进行一些特定的处理,同时限于SAPI的差异,扩展也必须要考虑到不同SAPI的实现特点。

PHP中的扩展分为两类:PHP扩展、Zend扩展,对内核而言这两个分别称之为:模块(module)、扩展(extension),本章主要介绍是PHP扩展,也就是模块。