Подтвердить что ты не робот

Что такое SAPI и когда вы его используете?

Недавно я узнал об обработке ошибок в PHP и наткнулся на функцию error_log().

В руководстве по PHP говорится о всех типах журналов ошибок, и я понимаю их все, кроме типа 3, в котором говорится, что сообщение об ошибке отправляется непосредственно в обработчик журналов SAPI. Мой вопрос: что такое SAPI и когда вы хотите его использовать?

4b9b3361

Ответ 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.