Koniec linii dla PHP w systemie Windows

PHP może istnieć już od jakiegoś czasu, ale nadal jest ważnym narzędziem do tworzenia stron internetowych. Opierając się na deklaratywnym modelu programowania, PHP rozszerza znaną składnię HTML o dodatkowe polecenia i funkcje, dodając programowanie in-line i rozszerzenia do zawartości sieci Web. Model ten uczynił go ważną częścią wielu systemów zarządzania treścią, zapewniając strukturę do zarządzania zawartością dostarczaną do bazy danych i formatowania stron przy użyciu dynamicznych szablonów.

Przyszłość PHP w systemie Windows

Wiele z tych systemów CMS działa wewnątrz korporacyjnych zapór ogniowych, hostujących intranety i wewnętrzne narzędzia do współpracy. Nic więc dziwnego, że oficjalne wersje PHP dla systemu Windows pochodzą od firmy Microsoft, jako jeden z najdłużej działających projektów open source.

Ale wszystko, co dobre, dobiega końca, a Microsoft ogłosił niedawno, że nie wyprodukuje oficjalnej wersji PHP 8 dla Windows. Do tej pory dostarczał wydania Windows jako pliki binarne i kod źródłowy na windows.php.net dla IIS i innych serwerów WWW Windows. Jednak to się skończy w przyszłości, ponieważ zespół dostarczający kompilacje PHP dla systemu Windows przechodzi do innych projektów, w miarę jak PHP 7 przechodzi przez cały cykl pomocy technicznej.

Co ta zmiana zasad sugeruje dla przyszłości PHP w systemie Windows? A co ważniejsze, jakie są alternatywy, jeśli chcesz skorzystać z okazji i zmienić swój sposób pracy?

Tak, jest przyszłość

Po pierwsze i najważniejsze, PHP dla Windows nie zniknie. Jest bardzo jasne, że istnieje więcej niż wystarczające zapotrzebowanie, aby ktoś kontynuował tworzenie i dystrybucję wersji PHP dla systemu Windows poza PHP 7. Firma Microsoft nie będzie bezpośrednio wnosić zasobów i serwerów do kompilacji, ale najprawdopodobniej przekaże licencje i serwery projekt PHP, aby zapewnić, że przynajmniej kompilacja systemu Windows wyjdzie z automatycznego procesu PHP CI / CD (ciągła integracja / ciągłe dostarczanie).

Do zespołu PHP będzie należało opracowanie zestawu umiejętności związanych z systemem Windows, aby upewnić się, że są uruchamiane odpowiednie testy i że kod jest poprawnie zoptymalizowany, poprzez zapewnienie, że w programie Visual Studio są używane odpowiednie ustawienia kompilacji. Chociaż nie powinno to być zbyt trudne, to nie to samo, co posiadanie dedykowanych zasobów jednej z największych firm programistycznych na świecie.

Alternatywnie istnieją inne wersje PHP dla systemu Windows, zbudowane przez różne firmy zewnętrzne z własnymi narzędziami PHP i od ochotników tworzących z bazy kodu open source. Jeśli potrzebujesz wsparcia, prawdopodobnie powinieneś wybrać komercyjną wersję PHP, podczas gdy otwarte kompilacje są idealne do złożenia środowiska programistycznego Windows PHP.

Używanie WSL do programowania w PHP

Jeśli szukasz alternatyw, platforma aplikacji hostowana w chmurze Azure App Service firmy Microsoft obsługuje język PHP, chociaż tutaj działa w systemie Linux, a nie w systemie Windows. Jeśli tworzysz do tego kod, prawdopodobnie będziesz potrzebować wersji PHP dla systemu Linux w sercu procesu programowania, kierując ją za pomocą narzędzi zdalnego obszaru roboczego w programie Visual Studio Code. Istnieje wiele różnych rozszerzeń PHP dla kodu, od obsługi technologii IntelliSense po narzędzia do debugowania i formatowania kodu.

Instalacja PHP w WSL (Podsystem Windows dla Linuksa) jest dość łatwa, a wszystkie zależności, których potrzebujesz, są instalowane za pośrednictwem wybranego menedżera pakietów. Zainstalowanie PHP w instancji Ubuntu WSL spowoduje zainstalowanie i skonfigurowanie serwera WWW Apache, dzięki czemu można szybko przejść od pisania i testowania kodu do uruchamiania go na produkcyjnym serwerze WWW. Instalacja zajmuje kilka minut, a wszystko jest gotowe do uruchomienia w terminalu Windows i dostępne z Visual Studio Code działającego w systemie Windows. Nie ma znaczenia, czy używasz WSL 1 czy WSL 2, masz takie same doświadczenia z każdą wersją.

Dzięki instancji Linux PHP uruchomionej na komputerze deweloperskim możesz teraz zbudować aplikację PHP i przetestować ją przed wdrożeniem w Azure App Services lub na hostowanym serwerze sieci Web. Jeśli używasz WSL 2, ten nowy model rozwoju może być używany z najnowszymi wersjami kontenerów Docker, używając komputera deweloperskiego do tworzenia kodu w WSL, a następnie spakuj go jako kontener w celu łatwiejszego wdrażania na serwerach w Twojej sieci, usługa hostingowa lub chmura publiczna.

Używanie PHP w Linuksie przez WSL jest prawdopodobnie najmniej uciążliwą opcją dla programowania PHP w systemie Windows, ale alternatywnym podejściem może być praca z bardziej nowoczesnym modelem tworzenia stron WWW. Masz wiele możliwości wyboru: albo pozostań w ekosystemie Microsoft przy użyciu ASP.NET, albo przejdź do modelu wieloplatformowego opartego na statycznym opracowywaniu witryn przy użyciu metod takich jak Jamstack.

Nowe modele programistyczne: .NET Blazor i Azure Static Web Apps

Jedno jest jasne: deklaratywny model tworzenia aplikacji internetowych używany przez PHP nie odchodzi. Wiarygodnym argumentem przemawiającym za zakończeniem oficjalnej obsługi języka PHP przez firmę Microsoft jest to, że nowsze technologie firmy Microsoft mogą oferować podobne opcje rozwoju, zużywając mniej zasobów i nadal działając na wielu platformach, a także mając mapę drogową obsługującą nowsze technologie internetowe.

ASP.NET Core to środowisko wieloplatformowe, które używa kodu platformy .NET po stronie serwera do dostarczania składników HTML i JavaScript. Opierając się na przenośnym środowisku uruchomieniowym .NET Core, składnia Razor w ASP.NET Core oferuje deklaratywne techniki programowania podobne do PHP. Jednak duża różnica pojawia się, gdy używasz jej w połączeniu z modelem programowania Blazor po stronie serwera.

Koncentrując się na jednostronicowych aplikacjach internetowych, Blazor Server wykonuje kod ASP.NET na serwerze sieci Web, kompilując zawartość do wstępnie renderowanych składników sieci Web z połączeniem Signal R między zawartością przeglądarki a usługami zaplecza. To podejście ma tę zaletę, że wymaga stosunkowo niewielkiej przepustowości kosztem pewnego opóźnienia z połączeniem w obie strony między serwerem a przeglądarką potrzebnym do każdej interakcji. Wstępne renderowanie treści w ten sposób może pomóc użytkownikom poczuć, że aplikacja jest bardziej responsywna, a interakcje odświeżają składniki interfejsu użytkownika.

Niedawne uruchomienie Azure Static Web Apps w ramach Azure App Services przyniosło nowy sposób tworzenia i używania zawartości sieci Web na platformie Azure i Windows. Tworząc witryny lokalnie przy użyciu Visual Studio Code i hostując zawartość w GitHub, niestandardowa akcja GitHub wdraża zaktualizowaną zawartość na platformie Azure. Witryny są tworzone przy użyciu języka HTML, JavaScript po stronie klienta i połączeń API z bazami danych i innymi usługami.

Podobnie jak Blazor i PHP, Jamstack przyjmuje podejście oparte na szablonach do projektowania witryn, chociaż jest mniej odpowiedni dla tradycyjnych systemów CMS, a bardziej dla treści opartych na plikach, które mogą być dystrybuowane przez sieci dostarczania treści, używając ich do buforowania zawartości bliżej użytkowników. Możesz utworzyć witrynę Azure Static Web Apps opartą na zawartości przy użyciu technik Jamstack, ale musisz być przygotowany na przebudowę całej witryny za każdym razem, gdy publikujesz nową zawartość.

Koniec wsparcia Microsoftu dla własnej wersji PHP nie jest katastrofą. To znak, że zmieniły się priorytety Redmond; technologie, takie jak WSL i Linux hostowany na platformie Azure, oferują alternatywne ścieżki do tworzenia i uruchamiania kodu PHP.

Jest to również znak, że inne, bardziej nowoczesne podejścia do tworzenia aplikacji internetowych mogą być ściślej zgodne z obecną ścieżką firmy Microsoft zorientowaną na chmurę, opierając się na .NET i nowoczesnych technikach tworzenia aplikacji. Cokolwiek zdecydujesz się zrobić, masz wiele opcji.