web-dev-qa-db-fra.com

Qu'est-ce que SAPI et quand l'utiliseriez-vous?

J'ai appris la gestion des erreurs dans PHP récemment et j'ai rencontré la fonction error_log() .

Dans le manuel PHP, il parle de tous les types de journaux d'erreurs et je les comprends tous sauf le type 3 qui indique que le message d'erreur est envoyé directement au gestionnaire de journalisation SAPI. Ma question est qu'est-ce que SAPI exactement et quand voudriez-vous l'utiliser?

55
jjmorph

SAPI signifie "Server API" (et API signifie "Application Programming Interface"). C'est le mécanisme qui contrôle l'interaction entre le "monde extérieur" et le moteur PHP/Zend. Donc, vous voudrez toujours l'utiliser. En fait, vous ne pouvez pas éviter de l'utiliser sans trop d'efforts car même CLI est considéré comme un SAPI.

48

[~ # ~] sapi [~ # ~] (Interface de programmation d'application serveur) également connu sous le nom [~ # ~] isapi [~ # ~] (Interface de programmation d'application de serveur Internet) pour Microsoft, [~ # ~] nsapi [~ # ~] (Netscape Server Application Programming Interface) pour Netscape.

Signification de [~ # ~] api [~ # ~] .

Pour les développeurs Web, vous pouvez penser à des API telles que REST, SOAP. Vous appelez un lien que vous obtenez des données du serveur. Il vous permet d'interagir avec le serveur Web.

SAPI est différent avec REST ou SOAP, SAPI est l'API (contrat) utilisée pour le serveur.

Par exemple: Common Gateway Interface est un SAPI. Si un serveur Web prend en charge CGI et un autre programme exécutable, implémentez-le afin que le serveur Web puisse s'interfacer et générer des pages Web de manière dynamique.

Regardez l'image ci-dessous:

SAPI Apache and php

mod_php implémente une interface qu'Apache et php peuvent se comprendre.

Alors qu'est-ce que SAPI exactement : C'est un contrat entre le serveur (tout type de serveur) et le programme. Suivez simplement le contrat et ils n'ont pas besoin de connaître les autres détails.

29
christian Nguyen

De Wikipedia :

En d'autres termes, SAPI est en fait une interface de programmation d'application (API) fournie par le serveur Web pour aider d'autres développeurs à étendre les capacités du serveur Web.

Par exemple, PHP possède une interface de module directe appelée SAPI pour différents serveurs Web; dans le cas de PHP 5 et Apache 2.0 sur Windows, il est fourni dans sous la forme d'un fichier DLL appelé php5Apache2.dll, qui est un module qui, entre autres fonctions, fournit une interface entre PHP et le serveur Web, implémenté dans un formulaire que le serveur comprend. Ce formulaire est appelé SAPI.

Il existe différents types de SAPI pour diverses extensions de serveur Web. Par exemple, deux autres SAPI pour le langage PHP sont Common Gateway Interface (CGI) et interface de ligne de commande (CLI).

15
numediaweb

Pour PHP SAPI disponibles sont: Apache2 (mod_php), FPM, CGI, FastCGI et CLI.

On peut soutenir que si l'API s'exécute sur le serveur, elle peut être appelée SAPI.

Permettez-moi de rappeler que FPM (FastCGI Process Manager) est très proche de PHP implémentation de FastCGI avec quelques fonctionnalités supplémentaires (principalement) utiles pour les sites lourds.

Aujourd'hui, du point de vue de la vitesse et de l'efficacité, le FPM serait le SAPI le plus évolué. Apache ou Nginx fonctionneront mieux en comparant les autres SAPI mentionnés.

1
prosti