La fine della riga per PHP su Windows

PHP potrebbe essere in circolazione da un po ', ma è ancora un importante strumento di sviluppo Web. Basandosi su un modello di programmazione dichiarativo, PHP estende la familiare sintassi HTML con comandi e funzioni aggiuntivi, aggiungendo programmazione ed estensioni in linea al contenuto Web. Questo modello lo ha reso una parte importante di molti sistemi di gestione dei contenuti, fornendo un framework per la gestione del contenuto fornito dal database e la formattazione delle pagine utilizzando modelli dinamici.

Il futuro di PHP su Windows

Molti di questi CMS vengono eseguiti all'interno di firewall aziendali, ospitando intranet e strumenti di collaborazione interni. Quindi non sorprende vedere che le build ufficiali di Windows di PHP provengono da Microsoft, come uno dei suoi progetti open source più longevi.

Ma tutte le cose belle finiscono e Microsoft ha recentemente annunciato che non produrrà una build ufficiale di PHP 8 per Windows. Fino ad ora ha distribuito versioni di Windows come binari e codice sorgente su windows.php.net per IIS e altri server Web Windows. Tuttavia, ciò si interromperà in futuro, poiché il team che fornisce build Windows PHP si sposta su altri progetti mentre PHP 7 attraversa il suo ciclo di vita del supporto.

Cosa suggerisce questa modifica alla politica per il futuro di PHP su Windows? E, cosa più importante, quali sono le alternative se vuoi cogliere l'opportunità per cambiare il tuo modo di lavorare?

Sì, c'è un futuro

Primo e più cruciale, PHP per Windows non scomparirà. È molto chiaro che c'è una domanda più che sufficiente per qualcuno per continuare a costruire e distribuire una versione Windows di PHP oltre PHP 7. Microsoft non contribuirà direttamente con risorse e server per le build, ma molto probabilmente donerà licenze e server a il progetto PHP per garantire che, come minimo, una build di Windows esca dal processo automatizzato PHP CI / CD (integrazione continua / consegna continua).

Spetterà al team PHP sviluppare una serie di competenze Windows per garantire che vengano eseguiti i test giusti e che il codice sia ottimizzato correttamente, assicurando che le impostazioni di compilazione corrette vengano utilizzate in Visual Studio. Anche se non dovrebbe essere troppo difficile, non è lo stesso che avere risorse dedicate da una delle più grandi società di software del mondo.

In alternativa, ci sono altre versioni Windows di PHP, create da un mix di aziende di terze parti con i propri strumenti PHP e da volontari che costruiscono dalla base di codice open source. Se desideri supporto, probabilmente dovresti scegliere una versione PHP commerciale, mentre le build aperte sono ideali per mettere insieme un ambiente di sviluppo PHP Windows.

Utilizzo di WSL per lo sviluppo in PHP

Se stai cercando alternative, la piattaforma applicativa ospitata nel cloud del servizio app Azure di Microsoft supporta PHP, anche se qui è in esecuzione su Linux, non su Windows. Se stai creando codice per questo, è probabile che tu voglia una versione Linux di PHP al centro del tuo processo di sviluppo, indirizzandola con gli strumenti dell'area di lavoro remota in Visual Studio Code. Esistono molte estensioni PHP diverse per il codice, dal supporto IntelliSense agli strumenti di debug e formattazione del codice.

Installare PHP in WSL (Windows Subsystem for Linux) è abbastanza semplice, con tutte le dipendenze necessarie installate tramite il gestore di pacchetti scelto. L'installazione di PHP in un'istanza WSL di Ubuntu installerà e configurerà il server Web Apache, in modo da poter passare rapidamente dalla scrittura e dal test del codice all'esecuzione su un server Web di produzione. L'installazione richiede un paio di minuti, con tutto pronto per essere eseguito all'interno del terminale di Windows e accessibile da Visual Studio Code in esecuzione all'interno di Windows. Non importa se stai usando WSL 1 o WSL 2, ottieni praticamente la stessa esperienza con entrambe le versioni.

Con un'istanza PHP Linux in esecuzione sulla macchina di sviluppo, è ora possibile creare un'applicazione PHP e testarla prima di distribuirla in Servizi app di Azure o in un server Web ospitato. Se stai utilizzando WSL 2, questo nuovo modello di sviluppo può essere utilizzato con le ultime versioni di Docker Containers, utilizzando il tuo PC di sviluppo per creare codice in WSL e quindi confezionarlo come contenitore per una distribuzione più semplice sui server, sia nella tua rete, sia un servizio di hosting o il cloud pubblico.

L'uso di PHP su Linux tramite WSL è probabilmente l'opzione meno dirompente per lo sviluppo di PHP su Windows, ma un approccio alternativo potrebbe essere quello di lavorare con un modello di sviluppo Web più moderno. Hai molte scelte: o rimanere nell'ecosistema Microsoft utilizzando ASP.NET o passare a un modello multipiattaforma basato sullo sviluppo di siti statici utilizzando approcci come Jamstack.

Nuovi modelli di sviluppo: .NET Blazor e app Web statiche di Azure

Una cosa è chiara: il modello di sviluppo di applicazioni Web dichiarativo utilizzato da PHP non verrà eliminato. Un argomento plausibile per la fine del supporto ufficiale Microsoft per PHP è che le nuove tecnologie Microsoft possono darti opzioni di sviluppo simili, utilizzando meno risorse e ancora lavorando su più piattaforme, e con una roadmap che supporta le nuove tecnologie Web.

ASP.NET Core è un ambiente multipiattaforma che utilizza codice .NET lato server per fornire componenti HTML e JavaScript. Basandosi sul runtime .NET Core portatile, la sintassi Razor di ASP.NET Core offre tecniche di programmazione dichiarativa simili a PHP. Tuttavia, la grande differenza si ha quando lo si utilizza insieme al modello di programmazione Blazor lato server.

Concentrandosi sulle applicazioni Web a pagina singola, Blazor Server esegue il codice ASP.NET sul server Web, compilando il contenuto in componenti Web pre-renderizzati con una connessione Signal R tra il contenuto del browser e i servizi back-end. Questo approccio ha il vantaggio di richiedere una larghezza di banda relativamente ridotta, a scapito di una certa latenza con una connessione di andata e ritorno tra server e browser necessaria per ogni interazione. Il pre-rendering del contenuto in questo modo può aiutare gli utenti a sentire che un'applicazione è più reattiva, con interazioni che aggiornano i componenti dell'interfaccia utente.

Il recente lancio delle app Web statiche di Azure come parte dei servizi app di Azure ha portato un nuovo modo di creare e utilizzare il contenuto Web in Azure e Windows. Creando siti in locale usando Visual Studio Code e ospitando contenuto in GitHub, un'azione GitHub personalizzata distribuisce il contenuto aggiornato in Azure. I siti vengono creati utilizzando HTML, JavaScript lato client e connessioni API a database e altri servizi.

Come Blazor e PHP, Jamstack adotta un approccio basato sui modelli alla progettazione del sito, sebbene sia meno adatto per i CMS tradizionali e più per i contenuti basati su file che possono essere distribuiti attraverso le reti di distribuzione dei contenuti, utilizzandoli per memorizzare nella cache i contenuti più vicini agli utenti. È possibile creare un sito di app Web statiche di Azure basato sul contenuto utilizzando le tecniche Jamstack, ma è necessario essere preparati a ricostruire l'intero sito ogni volta che si pubblica un nuovo contenuto.

La fine del supporto di Microsoft per la propria build di PHP non è un disastro. È un segno che le priorità di Redmond sono cambiate; tecnologie come WSL e Linux ospitato in Azure offrono percorsi alternativi per la creazione e l'esecuzione di codice PHP.

È anche un segno che altri approcci più moderni allo sviluppo di applicazioni Web potrebbero essere più strettamente allineati con l'attuale percorso incentrato sul cloud di Microsoft, basandosi su .NET e sulle moderne tecniche di sviluppo di applicazioni. Qualunque cosa tu decida di fare, hai molte opzioni.