Что такое SAPI и когда вы его используете?
Недавно я узнал об обработке ошибок в PHP и наткнулся на функцию error_log()
.
В руководстве по PHP говорится о всех типах журналов ошибок, и я понимаю их все, кроме типа 3, в котором говорится, что сообщение об ошибке отправляется непосредственно в обработчик журналов SAPI. Мой вопрос: что такое SAPI и когда вы хотите его использовать?
Ответы
Ответ 1
SAPI означает "Серверный API" (а API означает "Интерфейс прикладного программирования"). Это механизм, который контролирует взаимодействие между "внешним миром" и движком PHP/Zend. Таким образом, вы всегда хотели бы использовать его. Фактически, вы не можете избежать его использования без особых усилий, так как даже CLI считается SAPI.
Ответ 2
SAPI (интерфейс программирования серверных приложений) также известен как ISAPI (интерфейс программирования приложений для Интернета) для Microsoft, NSAPI (приложение Netscape Server Интерфейс программирования) для Netscape.
API.
Для веб-разработчика вы можете подумать об API, таком как REST, SOAP. Вы вызываете ссылку, в которой вы получаете данные с сервера. Это позволяет вам взаимодействовать с веб-сервером.
SAPI отличается с REST или SOAP, SAPI - это API (контракт), используемый для сервера.
Например: Common Gateway Interface - это SAPI. Если веб-сервер поддерживает CGI и другую исполняемую программу, реализуйте его, чтобы веб-сервер мог интегрировать и генерировать веб-страницы динамически.
Посмотрите изображение ниже:
![SAPI apache и php]()
mod_php реализует интерфейс, который apache и php могут понимать друг друга.
Итак, что такое SAPI в точности. Это контракт между сервером (любым типом сервера) и программой. Просто следуйте контракту, и им не нужно знать другие детали стороны.
Ответ 3
Из Википедии:
Другими словами, SAPI на самом деле является интерфейсом прикладного программирования (API), предоставляемым веб-сервером, чтобы помочь другим разработчикам расширить возможности веб-сервера.
Например, PHP имеет прямой интерфейс модуля под названием SAPI для различных веб-серверов; в случае PHP 5 и Apache 2.0 в Windows он предоставляется в виде DLL файла php5apache2.dll, который представляет собой модуль, который, помимо других функций, обеспечивает интерфейс между PHP и веб-сервером, реализованный в форме, которая сервер понимает. Эта форма известна как SAPI.
Существуют различные виды SAPI для различных расширений веб-сервера. Например, двумя другими SAPI для языка PHP являются Common Gateway Interface (CGI) и интерфейс командной строки (CLI).
Ответ 4
Для PHP доступны следующие SAPI: Apache2 (mod_php), FPM, CGI, FastCGI и CLI.
Аргументируется, если API работает на сервере, его можно назвать SAPI.
Напомню, что FPM (FastCGI Process Manager) очень близок к реализации PHP FastCGI с некоторыми дополнительными функциями (в основном), полезными для сайтов с большой нагрузкой.
Сегодня, с точки зрения скорости и эффективности, FPM будет самым развитым SAPI. Apache или Nginx будут работать лучше, чем другие упомянутые SAPI.