Programmering

Slutten av linjen for PHP på Windows

PHP kan ha eksistert en stund, men det er fortsatt et viktig verktøy for nettutvikling. Basert på en deklarativ modell for programmering, utvider PHP den velkjente HTML-syntaksen med flere kommandoer og funksjoner, og legger til integrert programmering og utvidelser til webinnholdet ditt. Denne modellen har gjort den til en viktig del av mange innholdsstyringssystemer, og gir et rammeverk for administrering av databaseleveret innhold og formatering av sider ved hjelp av dynamiske maler.

Fremtiden for PHP på Windows

Mange av disse CMS-ene kjører i bedriftens brannmurer, vert for intranett og interne samarbeidsverktøy. Så det er ikke overraskende å se at de offisielle Windows-byggene av PHP kommer fra Microsoft, som et av de lengste løpende open source-prosjektene.

Men alle gode ting kommer til en slutt, og Microsoft kunngjorde nylig at de ikke ville produsere en offisiell versjon av PHP 8 for Windows. Inntil nå har det levert Windows-utgivelser som binærfiler og kildekode på windows.php.net for IIS og andre Windows-webservere. Imidlertid vil det stoppe i fremtiden, ettersom teamet som leverer Windows PHP bygger videre til andre prosjekter ettersom PHP 7 går gjennom sin livssyklus.

Hva foreslår denne policyendringen for fremtiden for PHP på Windows? Og enda viktigere, hva er alternativene hvis du vil benytte anledningen til å endre måten du jobber på?

Ja, det er en fremtid

Først og mest avgjørende, vil PHP for Windows ikke forsvinne. Det er veldig klart at det er mer enn nok etterspørsel etter at noen skal fortsette å bygge og distribuere en Windows-versjon av PHP utover PHP 7. Microsoft vil ikke direkte bidra med ressurser og servere til byggene, men mer enn sannsynlig vil det donere lisenser og servere til PHP-prosjektet for å sikre at i det minste en Windows-bygging kommer ut av den automatiserte PHP CI / CD (kontinuerlig integrasjon / kontinuerlig levering) prosess.

Det vil være opp til PHP-teamet å utvikle et sett med Windows-ferdigheter for å sikre at de riktige testene kjøres og at koden optimaliseres riktig, ved å sikre at de riktige byggeinnstillingene blir brukt i Visual Studio. Selv om det ikke burde være for vanskelig, er det ikke det samme som å ha dedikerte ressurser fra et av de største programvareselskapene i verden.

Alternativt er det andre Windows-versjoner av PHP, bygget av en blanding av tredjepartsbedrifter med egne PHP-verktøy og fra frivillige som bygger fra kodebasen med åpen kildekode. Hvis du vil ha støtte, bør du sannsynligvis velge en kommersiell PHP-versjon, mens åpne builds er ideelle for å sette sammen et Windows PHP-utviklingsmiljø.

Bruker WSL for PHP-utvikling

Hvis du leter etter alternativer, støtter Microsofts egen applikasjonsplattform i Azure App Service-skyen PHP, men her kjører den på Linux, ikke på Windows. Hvis du bygger kode for dette, vil du sannsynligvis ha en Linux-versjon av PHP i hjertet av utviklingsprosessen, og målrette den med de eksterne arbeidsområdeverktøyene i Visual Studio Code. Det er mange forskjellige PHP-utvidelser for Code, fra IntelliSense-støtte til feilsøkings- og kodeformateringsverktøy.

Det er enkelt å installere PHP i WSL (Windows Subsystem for Linux), med alle avhengighetene du trenger installert via den valgte pakkebehandleren. Installasjon av PHP i en Ubuntu WSL-forekomst vil installere og konfigurere Apache Web-server, slik at du raskt kan gå fra å skrive og teste kode til å kjøre den på en produksjons-webserver. Installasjonen tar et par minutter, med alt klart til å kjøre inne i Windows Terminal og tilgjengelig fra Visual Studio Code som kjører inne i Windows. Det spiller ingen rolle om du bruker WSL 1 eller WSL 2, du får omtrent den samme opplevelsen med begge versjoner.

Med en Linux PHP-forekomst som kjører på utviklingsmaskinen din, kan du nå bygge et PHP-program og teste det før du distribuerer det til Azure App Services eller til en vertsnettserver. Hvis du bruker WSL 2, kan denne nye utviklingsmodellen brukes med de nyeste versjonene av Docker Containers, ved å bruke utviklings-PC-en din til å bygge kode i WSL og deretter pakke den som en container for enklere distribusjon til servere, enten i nettverket ditt, en hostingtjeneste, eller den offentlige skyen.

Bruk av PHP på Linux via WSL er sannsynligvis det minst forstyrrende alternativet for PHP-utvikling på Windows, men en alternativ tilnærming kan være å jobbe med en mer moderne webutviklingsmodell. Du har mange valg: enten forbli i Microsoft-økosystemet ved hjelp av ASP.NET eller gå til en plattformmodell basert på statisk nettstedutvikling ved bruk av tilnærminger som Jamstack.

Nye utviklingsmodeller: .NET Blazor og Azure Static Web Apps

En ting er klart: Den deklarative utviklingen av applikasjoner for webapplikasjoner som brukes av PHP, forsvinner ikke. Et plausibelt argument for slutten av offisiell Microsoft-støtte for PHP er at nyere Microsoft-teknologier kan gi deg lignende utviklingsalternativer, mens du bruker færre ressurser og fortsatt jobber på tvers av plattformer, og med en veikart som støtter nyere webteknologier.

ASP.NET Core er et plattformmiljø som bruker .NET-kode på serversiden for å levere HTML- og JavaScript-komponenter. ASP.NET Core's Razor-syntaks bygger på den bærbare .NET Core-kjøretiden og tilbyr deklarative programmeringsteknikker som ligner på PHP. Den store forskjellen kommer imidlertid når du bruker den i forbindelse med Blazor-programmeringsmodellen på serversiden.

Med fokus på enkeltsideprogrammer, utfører Blazor Server ASP.NET-kode på webserveren din, og kompilerer innhold til forhåndsgjengitte webkomponenter med en Signal R-forbindelse mellom nettleserinnhold og back-end-tjenester. Denne tilnærmingen har fordelen av å kreve relativt liten båndbredde, på bekostning av litt ventetid med en rundturforbindelse mellom server og nettleser som er nødvendig for hver interaksjon. Pre-gjengivelse av innhold på denne måten kan hjelpe brukerne til å føle at et program er mer responsivt, med interaksjoner som forfrisker UI-komponentene.

Den nylige lanseringen av Azure Static Web Apps som en del av Azure App Services ga en ny måte å opprette og bruke webinnhold til Azure og Windows på. Ved å bygge nettsteder lokalt ved hjelp av Visual Studio Code og hoste innhold i GitHub, distribuerer en tilpasset GitHub-handling oppdatert innhold til Azure. Nettsteder er bygget ved hjelp av HTML, JavaScript på klientsiden og API-tilkoblinger til databaser og andre tjenester.

I likhet med Blazor og PHP tar Jamstack en malbasert tilnærming til nettstedsdesign, men det er mindre egnet for tradisjonelle CMSer og mer for filbasert innhold som kan distribueres gjennom innholdsleveringsnettverk, og bruker dem til å cache innhold nærmere brukerne dine. Du kan bygge et innholdsbasert Azure Static Web Apps-nettsted ved hjelp av Jamstack-teknikker, men du må være forberedt på å gjenoppbygge hele nettstedet hver gang du publiserer noe nytt innhold.

Microsofts slutt på støtte for egen bygging av PHP er ikke en katastrofe. Det er et tegn på at Redmonds prioriteringer har endret seg; teknologier som WSL og Azure-vert Linux tilbyr alternative baner for å bygge og kjøre PHP-kode.

Det er også et tegn på at andre, mer moderne tilnærminger til utvikling av webapplikasjoner kan være nærmere tilpasset Microsofts nåværende sky-sentriske bane, basert på .NET og moderne applikasjonsutviklingsteknikker. Uansett hva du bestemmer deg for å gjøre, har du mange alternativer.

$config[zx-auto] not found$config[zx-overlay] not found