Programmering

Slutningen af ​​linjen til PHP på Windows

PHP kan have eksisteret i et stykke tid, men det er stadig et vigtigt webudviklingsværktøj. Baseret på en deklarativ model for programmering udvider PHP den velkendte HTML-syntaks med yderligere kommandoer og funktioner, tilføjer in-line programmering og udvidelser til dit webindhold. Denne model har gjort det til en vigtig del af mange indholdsstyringssystemer, der giver en ramme for styring af databaseleveret indhold og formatering af sider ved hjælp af dynamiske skabeloner.

Fremtiden for PHP på Windows

Mange af disse CMS'er kører inden for firmails, hosting af intranet og interne samarbejdsværktøjer. Så det er ikke overraskende at se, at de officielle Windows-builds af PHP kommer fra Microsoft, som et af dets længst kørende open source-projekter.

Men alle gode ting slutter, og Microsoft meddelte for nylig, at de ikke ville producere en officiel version af PHP 8 til Windows. Indtil nu har det leveret Windows-udgivelser som binære filer og kildekode på windows.php.net til IIS og andre Windows-webservere. Det stopper dog i fremtiden, da teamet, der leverer Windows PHP bygger, går videre til andre projekter, da PHP 7 gennemgår sin supportlevecyklus.

Hvad foreslår denne politikændring for fremtiden for PHP på Windows? Og vigtigere, hvad er alternativerne, hvis du vil benytte lejligheden til at ændre den måde, du arbejder på?

Ja, der er en fremtid

Første og mest afgørende, PHP til Windows forsvinder ikke. Det er meget klart, at der er mere end nok efterspørgsel efter nogen til at fortsætte med at opbygge og distribuere en Windows-version af PHP ud over PHP 7. Microsoft bidrager ikke direkte med ressourcer og servere til builds, men mere end sandsynligt vil det donere licenser og servere til PHP-projektet for at sikre, at i det mindste en Windows-build kommer ud af den automatiserede PHP CI / CD (kontinuerlig integration / kontinuerlig levering) proces.

Det vil være op til PHP-teamet at udvikle et sæt Windows-færdigheder for at sikre, at de rigtige tests køres, og at koden er optimeret korrekt ved at sikre, at de rigtige buildindstillinger bruges i Visual Studio. Selvom det ikke burde være for svært, er det ikke det samme som at have dedikerede ressourcer fra et af de største softwarevirksomheder i verden.

Alternativt er der andre Windows-versioner af PHP, bygget af en blanding af tredjepartsfirmaer med deres egne PHP-værktøjer og fra frivillige, der bygger fra open source-kodebasen. Hvis du vil have support, skal du sandsynligvis vælge en kommerciel PHP-version, mens åbne builds er ideelle til at sammensætte et Windows PHP-udviklingsmiljø.

Brug af WSL til PHP-udvikling

Hvis du leder efter alternativer, understøtter Microsofts egen Azure App Service cloud-hostede applikationsplatform PHP, selvom det her kører på Linux, ikke på Windows. Hvis du bygger kode til dette, vil du sandsynligvis have en Linux-version af PHP i hjertet af din udviklingsproces, der målretter den med de eksterne arbejdsområdeværktøjer i Visual Studio Code. Der er mange forskellige PHP-udvidelser til kode, fra IntelliSense-support til fejlfindings- og kodeformateringsværktøjer.

Installation af PHP i WSL (Windows Subsystem til Linux) er let nok med alle de afhængigheder, du har brug for, installeret via din valgte pakkehåndtering. Installation af PHP i en Ubuntu WSL-instans installerer og konfigurerer Apache-webserveren, så du hurtigt kan gå fra at skrive og teste kode til at køre den på en produktionswebserver. Installationen tager et par minutter, hvor alt er klar til at køre inde i Windows Terminal og tilgængeligt fra Visual Studio Code, der kører inde i Windows. Det betyder ikke noget, om du bruger WSL 1 eller WSL 2, du får stort set den samme oplevelse med begge versioner.

Med en Linux PHP-instans, der kører på din udviklingsmaskine, er du nu i stand til at oprette en PHP-applikation og teste den, før du distribuerer den til Azure App Services eller til en hostet webserver. Hvis du bruger WSL 2, kan denne nye udviklingsmodel bruges med de nyeste udgivelser af Docker Containers ved hjælp af din udviklings-pc til at opbygge kode i WSL og derefter pakke den som en container til lettere implementering til servere, enten i dit netværk, en hostingtjeneste eller den offentlige sky.

Brug af PHP på Linux via WSL er sandsynligvis den mindst forstyrrende mulighed for PHP-udvikling på Windows, men en alternativ tilgang kan være at arbejde med en mere moderne webudviklingsmodel. Du har mange valg: enten forblive i Microsoft-økosystemet ved hjælp af ASP.NET, eller flyt til en platformoverskridende model baseret på statisk webstedsudvikling ved hjælp af fremgangsmåder som Jamstack.

Nye udviklingsmodeller: .NET Blazor og Azure Static Web Apps

Én ting er klar: Den deklarative udviklingsmodel til webapplikationer, der bruges af PHP, forsvinder ikke. Et plausibelt argument for afslutningen af ​​officiel Microsoft-support til PHP er, at nyere Microsoft-teknologier kan give dig lignende udviklingsmuligheder, mens du bruger færre ressourcer og stadig arbejder på tværs af platforme og med en køreplan, der understøtter nyere webteknologier.

ASP.NET Core er et platformoverskridende miljø, der bruger server-side .NET-kode til at levere HTML- og JavaScript-komponenter. ASP.NET Core's Razor-syntaks bygger på den bærbare .NET Core-runtime og tilbyder deklarative programmeringsteknikker svarende til PHP. Den store forskel kommer imidlertid, når du bruger den sammen med Blazor-programmeringsmodellen på serversiden.

Med fokus på enkeltsidede webapplikationer udfører Blazor Server ASP.NET-kode på din webserver og kompilerer indhold til præ-gengivne webkomponenter med en Signal R-forbindelse mellem browserindhold og back-end-tjenester. Denne tilgang har den fordel, at den kræver relativt lille båndbredde på bekostning af en vis latenstid med en rundturforbindelse mellem server og browser, der er nødvendig for hver interaktion. Pre-rendering af indhold på denne måde kan hjælpe brugerne til at føle, at en applikation er mere lydhør, med interaktioner, der opdaterer UI-komponenterne.

Den nylige lancering af Azure Static Web Apps som en del af Azure App Services bragte en ny måde at oprette og bruge webindhold til Azure og Windows på. Ved at opbygge websteder lokalt ved hjælp af Visual Studio-kode og hoste indhold i GitHub distribuerer en brugerdefineret GitHub-handling opdateret indhold til Azure. Websteder er bygget ved hjælp af HTML, JavaScript på klientsiden og API-forbindelser til databaser og andre tjenester.

Ligesom Blazor og PHP tager Jamstack en skabelonbaseret tilgang til webstedsdesign, skønt det er mindre velegnet til traditionelle CMS'er og mere til filbaseret indhold, der kan distribueres gennem indholdsleveringsnetværk ved hjælp af dem til at cache indhold tættere på dine brugere. Du kan oprette et indholdsbaseret Azure Static Web Apps-websted ved hjælp af Jamstack-teknikker, men du skal være parat til at genopbygge hele sitet hver gang du udgiver nyt indhold.

Microsofts afslutning af support til sin egen build af PHP er ikke en katastrofe. Det er et tegn på, at Redmonds prioriteter er ændret; teknologier som WSL og Azure-hostet Linux tilbyder alternative stier til at opbygge og køre PHP-kode.

Det er også et tegn på, at andre, mere moderne tilgange til udvikling af webapplikationer kan være tættere tilpasset Microsofts nuværende sky-centrerede sti, baseret på. Uanset hvad du beslutter dig for at gøre, har du masser af muligheder.