La cosa con PHP è che non è solo un linguaggio di programmazione, ma un intero ecosistema, costituito da:
- Il linguaggio di programmazione PHP stesso
- Un runtime che può essere collegato a un server Web (tramite
mod_php
o CGI / FastCGI) e offre molti modi per interagire con esso
- Un'ampia libreria di funzioni e classi integrate, molte delle quali correlate al Web
PHP fornisce funzionalità nella lingua stessa che sono molto specifiche per la programmazione web, come i superglobali ( $_SERVER
, $_GET
, $_POST
, $_COOKIE
, ecc.), saltando tra la modalità PHP e la modalità HTML usando% tag<?php ?>
, ecc., e la sua semantica è costruita attorno al modello di esecuzione one-process-per-request che era la norma agli inizi della programmazione web lato server. PHP è iniziato come uno strumento di scripting web e solo in seguito si è evoluto in un linguaggio di programmazione (un po ') generico; la versione CLI e altre funzionalità non Web, anche se spesso possono essere utilizzate in modo abbastanza efficace, sono un ripensamento e, con una sufficiente esposizione alla lingua e al suo ecosistema, a volte possono diventare dolorosamente evidenti.
Al contrario, la maggior parte degli altri linguaggi di programmazione sono stati concepiti come linguaggi di programmazione generici, di sistemi o applicazioni fin dall'inizio, e qualsiasi cosa specifica per la programmazione web è disponibile nelle librerie. Se vuoi fare programmazione web, per esempio, in Python, hai bisogno di un framework web, o almeno di una libreria per implementare collegamenti al server web e cose come l'analisi delle richieste, i template HTML e la gestione delle sessioni, e probabilmente anche alcuni binding di database (a meno che tu non sei davvero hardcore e scrivi tutto da zero).
PHP ha incorporato tutte queste cose per impostazione predefinita, ed è per questo che alla gente piace dire che PHP è un framework web in sé.
Per un "Ciao, mondo!" applicazione web in Python, di solito si imposta un virtualenv, si installano alcune librerie, si impostano alcune regole per il framework web, si definiscono i percorsi e si scrive un gestore che genera una risposta con "Hello, world!" nel corpo; in PHP, si tratta di scrivere <?php echo "Hello, world!"
in index.php, copiarlo nel docroot di apache e abilitare mod_php. Il resto (aggancio al server, analisi delle richieste, generazione di risposte, ecc.) Accade ancora, ma PHP si prende cura di esso per te.