Я недавно узнал об обработке ошибок в PHP и наткнулся на функцию error_log(). В руководстве по PHP он рассказывает обо всех типах журналов ошибок, и я понимаю их всех, кроме типа 3, который указывает, что сообщение об ошибке отправляется непосредственно обработчику ведения SAPI. Мой вопрос в том, что такое 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 (Server Application Programming Interface), также известный как ISAPI (Internet Server Application Programming Interface) для Microsoft, NSAPI (Netscape сервера Application Programming Interface) для Netscape.
API значение.
Для веб-разработчиков вы можете придумать API, такой как REST, SOAP. Вы вызываете ссылку, в которой вы получаете данные с сервера. Это позволяет вам взаимодействовать с веб-сервером.
SAPI отличается REST или SOAP, SAPI - это API (контракт), используемый для сервера.
Например: Common Gateway Interface - это SAPI. Если веб-сервер поддерживает CGI и другую исполняемую программу, реализуйте его так, чтобы веб-сервер мог интегрировать и генерировать веб-страницы динамически.
Посмотрите изображение ниже:
mod_php реализовать интерфейс, который апач и РНР могут понять друг друга.
Так что же такое SAPI точно: Это контракт между Сервером (любым видом сервера) и программой. Просто следуйте контракту, и им не нужно знать другие детали.
Можете ли вы сказать мне, откуда взялась эта фотография?Я ищу материал на эту тему с такой графической иллюстрацией. – dwytrykus
Я точно не помню. После некоторого поиска старое. Я нахожу его: http://www.slideshare.net/do_aki/php-and-sapi-and-zendengine2-and. Надеюсь, что это поможет. –
+0, требуется разработка. – Pacerier
Итак, как вы узнаете, что ваш регистратор SAPI находится в запущенной конфигурации, аккуратно собранной вашим поддерживающим пакет? (чтобы он регистрировал сообщения, которые вы отчаянно хотите видеть :)) – n611x007