Recentemente ho imparato a conoscere la gestione degli errori in PHP e ho trovato la funzione error_log(). Nel manuale PHP, parla di tutti i tipi di log degli errori e li capisco tutti tranne il tipo 3 che afferma che il messaggio di errore viene inviato direttamente al gestore di logging SAPI. La mia domanda è cosa sia esattamente SAPI e quando vorresti utilizzarlo?Che cos'è SAPI e quando lo utilizzeresti?
risposta
SAPI sta per "Server API". È il meccanismo che controlla l'interazione tra il "mondo esterno" e il motore PHP/Zend. Quindi, vorrai sempre usarlo. In realtà, non puoi evitare di usarlo senza un sacco di sforzo poiché anche la CLI è considerata un SAPI.
Da Wikipedia:
In altre parole, SAPI è in realtà un'interfaccia di programmazione delle applicazioni (API) fornito dal server web per aiutare altri sviluppatori di estendere le funzionalità del server web.
Ad esempio, PHP ha un'interfaccia modulo diretta denominata SAPI per diversi server Web; in caso di PHP 5 e Apache 2.0 su Windows, viene fornito sotto forma di un file DLL chiamato php5apache2.dll, che è un modulo che, tra le altre funzioni, fornisce un'interfaccia tra PHP e il server Web, implementata in una forma che il server capisce. Questo modulo è ciò che è noto come SAPI.
Esistono diversi tipi di SAPI per varie estensioni del server Web. Ad esempio, altri due SAPI per il linguaggio PHP sono Common Gateway Interface (CGI) e CLI (command-line interface).
SAPI (Server Application Programming Interface) anche conosciuto come ISAPI (Internet Server Application Programming Interface) per Microsoft, NSAPI (Netscape Server Application Programming Interface) per Netscape.
API significato.
Per gli sviluppatori Web, puoi pensare a API come REST, SOAP. Si chiama un collegamento si ottiene un dato dal server. Ti consente di interagire con il server web.
SAPI è diverso con REST o SOAP, SAPI è API (contratto) utilizzato per il server.
Ad esempio: Common Gateway Interface è un SAPI. Se un server Web supporta CGI e un altro programma eseguibile lo implementa in modo che il server Web possa integrare e generare pagine Web in modo dinamico.
osservi l'immagine qui sotto:
mod_php implementare un'interfaccia che Apache e PHP possono capirsi.
Quindi cos'è SAPI esattamente: È un contratto tra Server (qualsiasi tipo di server) e il programma. Basta seguire il contratto e non è necessario conoscere altri dettagli laterali.
Puoi dirmi da dove viene scattata questa foto?Sto cercando un materiale sull'argomento con esattamente questo tipo di illustrazione grafica. – dwytrykus
Non ricordo esattamente. Dopo aver cercato la vecchia cosa. Ne trovo uno: http://www.slideshare.net/do_aki/php-and-sapi-and-zendengine2-and. Spero che aiuto. –
- 1. Cos'è SELF JOIN e quando lo utilizzeresti?
- 2. Che cos'è il blocco in MySQL e quando lo utilizzeresti?
- 3. In PowerShell, che tipo di dati è [stringa []] e quando lo utilizzeresti?
- 4. Delphi SAPI Text-To-Speech
- 5. Utilizzeresti il bugtracker per tracciare lo sviluppo dei requisiti iniziali?
- 6. appfuse vs roo - cosa utilizzeresti
- 7. Utilizzeresti Twitter Bootstrap per un'app intranet/business?
- 8. Espeak SAPI/dll utilizzo su Windows?
- 9. qual è la differenza tra lo SpVoice e SpeechSynthesizer
- 10. Quando dovrei usare AutoMapper e quando non lo sono
- 11. Quando utilizzare l'array di byte e quando utilizzare lo streaming?
- 12. Il metodo che ottiene Task e lo passa lo attende?
- 13. Utilizzeresti l'architettura S # arp in un nuovo progetto commerciale?
- 14. Utilizzeresti LINQ to SQL per i nuovi progetti?
- 15. Utilizzeresti le regioni all'interno di dichiarazioni di switch/enum lunghi?
- 16. SignInManager, che cos'è e come, quando usarlo?
- 17. Che cos'è l'operatore "& =" e perché Twilio lo utilizza quando confronta le stringhe?
- 18. swing JButton: che mostra bordo e lo sfondo solo quando è librato
- 19. css-fix per lo schermo che salta su e giù quando si scorre su dispositivi Android
- 20. Che cosa è getattr() esattamente e come lo uso?
- 21. Che cos'è __declspec e quando devo usarlo?
- 22. Chi è responsabile per lo smaltimento di HttpPostedFile.InputStream - e quando?
- 23. Quando e come utilizzare lo stile di passaggio di continuazione
- 24. errore quando lo smaltimento di un IActivationBlock e l'importazione Ikernel
- 25. Che cos'è un DynamicClassAttribute e come lo uso?
- 26. GHC crea una nuova copia di un oggetto quando lo decostruisce e lo ricostruisce?
- 27. Quando si chiama Edge.js da C#, come si agganciano lo stdout e lo stderr?
- 28. aggiungi il mio motore TTS a Android TTS Serivce come SAPI
- 29. Che cos'è XML BOM e come lo si rileva?
- 30. Che cos'è un attributo di cassa e dove lo aggiungo?
+0, Elaborazione necessaria. – Pacerier
così come si fa a sapere che cosa il logger SAPI è in una configurazione in esecuzione ordinatamente assemblata dal manutentore del pacchetto? (per fare in modo che registri i messaggi che vuoi vedere disperatamente :)) – n611x007