什么是SAPI,你什么时候使用它?

我最近在PHP中学习error handling,并且遇到了error_log()函数。 在PHP手册中,它讲述了所有的错误日志types,并且我理解了所有这些错误日志types,除了types3,它指出错误消息直接发送到SAPI日志处理程序。 我的问题是SAPI到底是什么,你想什么时候使用它?

SAPI代表“服务器API”。 它是控制“外部世界”和PHP / Zend引擎之间交互的机制。 所以,你总是想要使用它。 事实上,即使CLI被视为SAPI,也无法避免使用它。

维基百科:

换句话说,SAPI实际上是由Web服务器提供的应用程序编程接口(API),以帮助其他开发人员扩展Web服务器function。

作为一个例子,PHP为不同的Web服务器提供了一个称为SAPI的直接模块接口; 在Windows 5上的PHP 5和Apache 2.0的情况下,它提供了一个名为php5apache2.dll的DLL文件的forms,这是一个模块,除了其他function,提供了一个PHP和Web服务器之间的接口,实现的forms服务器理解。 这种forms就是所谓的SAPI。

各种Web服务器扩展有不同种类的SAPI。 例如,用于PHP语言的另外两个SAPI是通用网关接口(CGI)和命令行接口(CLI)。

SAPI (服务器应用编程接口)也被称为用于Microsoft的ISAPI (因特网服务器应用程序编程接口),用于Netscape的NSAPI (Netscape服务器应用编程接口)。

API的含义。

对于Web开发人员,您可以考虑使用REST,SOAP等API。 你调用一个链接,你从服务器获取数据。 它允许您与Web服务器进行交互。

SAPI与REST或SOAP不同,SAPI是用于服务器的API(契约)。

例如:公共网关接口是一个SAPI。 如果一个Web服务器支持CGI和另一个可执行程序,那么Web服务器就可以dynamic地接口并生成网页。

看下面的图片:

SAPI的Apache和PHP

mod_php实现apache和php可以互相理解的接口。

那么SAPI到底是什么 :它是Server(任何一种服务器)和程序之间的契约。 只要按照合同,他们不需要知道其他方面的细节。