Я недавно узнал об обработке ошибок в PHP и наткнулся на функцию error_log (). В руководстве по PHP он рассказывает обо всех типах журналов ошибок, и я понимаю их всех, кроме типа 3, который указывает, что сообщение об ошибке отправляется непосредственно обработчику ведения SAPI. Мой вопрос в том, что такое SAPI и когда вы хотите его использовать?
SAPI означает «Сервер API». Именно механизм контролирует взаимодействие между «внешним миром» и движком PHP / Zend. Таким образом, вы всегда хотели бы использовать его. Фактически, вы не можете избежать его использования без особых усилий, так как даже CLI считается SAPI.
Из Википедии:
Другими словами, SAPI представляет собой интерфейс прикладного программирования (API), предоставляемый веб-сервером, чтобы помочь другим разработчикам расширить возможности веб-сервера.
В качестве примера PHP имеет прямой интерфейс модуля SAPI для разных веб-серверов; в случае PHP 5 и Apache 2.0 в Windows он предоставляется в виде DLL-файла с именем php5apache2.dll, который является модулем, который среди других функций обеспечивает интерфейс между PHP и веб-сервером, реализованный в форме, которая сервер понимает. Эта форма называется SAPI.
Существуют разные типы SAPI для различных расширений веб-серверов. Например, еще два SAPI для языка PHP – это Common Gateway Interface (CGI) и интерфейс командной строки (CLI).
SAPI (интерфейс программирования сервера) также известен как ISAPI (интерфейс программирования приложений для Интернета) для Microsoft, NSAPI (Netscape Server Application Programming Interface) для Netscape.
Значение API .
Для веб-разработчиков вы можете придумать API, такой как REST, SOAP. Вы вызываете ссылку, в которой вы получаете данные с сервера. Это позволяет вам взаимодействовать с веб-сервером.
SAPI отличается от REST или SOAP, SAPI – это API (контракт), используемый для сервера.
Например: Common Gateway Interface – это SAPI. Если веб-сервер поддерживает CGI и другую исполняемую программу, реализуйте его так, чтобы веб-сервер мог интегрировать и генерировать веб-страницы динамически.
Посмотрите изображение ниже:
mod_php реализует интерфейс, который apache и php могут понимать друг друга.
Итак, что такое SAPI : это контракт между сервером (любым типом сервера) и программой. Просто следуйте контракту, и им не нужно знать другие детали.