2012-03-30 91 views
41

我最近在PHP中学习错误处理,并且遇到了error_log()函数。在PHP手册中,它讲述了所有的错误日志类型,并且我理解了所有错误日志类型,除了类型3,它指出错误消息直接发送到SAPI日志记录处理程序。我的问题是SAPI究竟是什么,你想什么时候使用它?什么是SAPI,您什么时候使用它?

回答

35

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

+24

+0,需要详细说明。 – Pacerier 2014-10-14 05:40:28

+3

那么如何找出你的SAPI记录器在由你的软件包维护人员整齐组装的运行配置上? (为了让它记录下你非常想看到的信息:)) – n611x007 2015-08-24 11:48:24

14

维基百科:

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

作为一个例子,PHP有一个称为SAPI的直接模块接口用于不同的Web服务器;在Windows 5上的PHP 5和Apache 2.0的情况下,它是以一种名为php5apache2.dll的DLL文件的形式提供的,该文件是一个模块,除了其他功能外,它还提供了PHP和Web服务器之间的接口,服务器理解。这种形式就是所谓的SAPI。

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

14

SAPI(服务器应用编程接口),也称为ISAPI(Internet服务器应用程序编程接口),对于微软来说,NSAPI(Netscape服务器应用程序编程接口)为Netscape。

API的含义。

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

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

例如:通用网关接口是一个SAPI。如果一个Web服务器支持CGI和另一个可执行程序来实现它,所以Web服务器可以动态地接口并生成网页。

看下面的图片:

SAPI apache and php

mod_php的实现,其Apache和PHP能够互相理解的接口。

那么SAPI究竟是什么:它是服务器(任何一种服务器)和程序之间的契约。只要遵守合同,他们就不需要知道其他方的细节。

+0

你能告诉我这张照片是从哪里拍摄的吗?我正在寻找与这种图形化插图相关的主题材料。 – dwytrykus 2017-01-07 11:56:47

+0

我不记得确切。经过一些搜索旧的东西。我找到一个:http://www.slideshare.net/do_aki/php-and-sapi-and-zendengine2-and。希望有所帮助。 – 2017-01-11 01:35:32

相关问题