Akhir baris untuk PHP pada Windows

PHP mungkin telah lama wujud, tetapi ia masih merupakan alat pengembangan Web yang penting. Berdasarkan model pengaturcaraan deklaratif, PHP memperluas sintaks HTML yang sudah biasa dengan perintah dan fungsi tambahan, menambahkan pengaturcaraan dan pelanjutan dalam kandungan Web anda. Model itu menjadikannya bahagian penting dari banyak sistem pengurusan kandungan, menyediakan kerangka kerja untuk mengurus kandungan yang disampaikan pangkalan data dan memformat halaman menggunakan templat dinamis.

Masa depan PHP pada Windows

Sebilangan besar CMS tersebut berjalan di dalam firewall korporat, hosting intranet dan alat kerjasama dalaman. Oleh itu, tidak menghairankan apabila melihat PHP Windows rasmi berasal dari Microsoft, sebagai salah satu projek sumber terbuka yang paling lama dijalankan.

Tetapi semua perkara baik berakhir, dan Microsoft baru-baru ini mengumumkan bahawa ia tidak akan menghasilkan binaan rasmi PHP 8 untuk Windows. Sehingga kini ia telah memberikan pelepasan Windows sebagai binari dan kod sumber di windows.php.net untuk IIS dan pelayan Windows Web yang lain. Namun, itu akan berhenti pada masa akan datang, ketika pasukan yang menyampaikan Windows PHP terus bergerak ke projek lain ketika PHP 7 melalui kitaran hidup sokongannya.

Apa yang dicadangkan oleh perubahan dasar ini untuk masa depan PHP pada Windows? Dan, yang lebih penting, apakah alternatif jika anda ingin mengambil kesempatan untuk mengubah cara anda bekerja?

Ya, ada masa depan

Pertama, dan paling penting, PHP untuk Windows tidak akan hilang. Sangat jelas bahawa ada permintaan yang lebih dari cukup untuk seseorang untuk terus membangun dan menyebarkan versi Windows PHP di luar PHP 7. Microsoft tidak akan secara langsung menyumbang sumber dan pelayan untuk binaan tersebut, tetapi kemungkinan besar, ia akan menyumbangkan lesen dan pelayan projek PHP untuk memastikan bahawa, paling tidak, binaan Windows akan keluar dari proses PHP CI / CD automatik (integrasi berterusan / penghantaran berterusan).

Terserah kepada pasukan PHP untuk mengembangkan satu set kemahiran Windows untuk memastikan bahawa ujian yang betul dijalankan dan kod tersebut dioptimumkan dengan betul, dengan memastikan bahawa tetapan binaan yang tepat digunakan di Visual Studio. Walaupun itu tidak terlalu sukar, tidak sama dengan memiliki sumber daya khusus dari salah satu syarikat perisian terbesar di dunia.

Sebagai alternatif, terdapat versi Windows PHP lain, yang dibina oleh gabungan syarikat pihak ketiga dengan alat PHP mereka sendiri dan dari sukarelawan yang membina dari pangkalan data sumber terbuka. Sekiranya anda mahukan sokongan, anda mungkin harus memilih versi PHP komersial, sedangkan binaan terbuka sangat sesuai untuk mengumpulkan persekitaran pengembangan PHP Windows.

Menggunakan WSL untuk pembangunan PHP

Sekiranya anda mencari alternatif, platform aplikasi yang dihoskan oleh Cloud Azure App Service Microsoft sendiri menyokong PHP, walaupun di sini ia berjalan di Linux, bukan di Windows. Sekiranya anda membina kod untuk ini, anda mungkin menginginkan PHP versi Linux di tengah-tengah proses pembangunan anda, menyasarkannya dengan alat ruang kerja jauh dalam Visual Studio Code. Terdapat banyak sambungan PHP yang berbeza untuk Kod, dari sokongan IntelliSense hingga alat debug dan pemformatan kod.

Memasang PHP di WSL (Windows Subsystem for Linux) cukup mudah, dengan semua pergantungan yang anda perlukan dipasang melalui pengurus pakej pilihan anda. Memasang PHP dalam contoh WSL Ubuntu akan memasang dan mengkonfigurasi pelayan Web Apache, sehingga anda dapat dengan cepat mulai menulis dan menguji kod hingga menjalankannya di pelayan Web produksi. Pemasangan memerlukan beberapa minit, dengan semua yang siap dijalankan di dalam Terminal Windows dan dapat diakses dari Visual Studio Code yang berjalan di dalam Windows. Tidak kira sama ada anda menggunakan WSL 1 atau WSL 2, anda akan mendapat pengalaman yang sama dengan kedua-dua versi tersebut.

Dengan contoh PHP Linux yang berjalan di mesin pengembangan anda, kini anda dapat membuat aplikasi PHP dan mengujinya sebelum menyebarkannya ke Azure App Services atau ke pelayan Web yang dihoskan. Sekiranya anda menggunakan WSL 2, model pengembangan baru ini dapat digunakan dengan keluaran terbaru Docker Containers, menggunakan PC pengembangan anda untuk membina kod di WSL dan kemudian membungkusnya sebagai wadah untuk penyebaran lebih mudah ke pelayan, sama ada di rangkaian anda, perkhidmatan hosting, atau awan awam.

Menggunakan PHP di Linux melalui WSL kemungkinan merupakan pilihan paling tidak mengganggu untuk pengembangan PHP pada Windows, tetapi pendekatan alternatif mungkin bekerja dengan model pembangunan Web yang lebih moden. Anda mempunyai banyak pilihan: sama ada kekal dalam ekosistem Microsoft menggunakan ASP.NET atau beralih ke model lintas platform berdasarkan pengembangan laman web statik menggunakan pendekatan seperti Jamstack.

Model pembangunan baru: .NET Blazor dan Aplikasi Web Statik Azure

Satu perkara yang jelas: model pengembangan aplikasi Web deklaratif yang digunakan oleh PHP tidak akan hilang. Hujah yang masuk akal untuk berakhirnya sokongan Microsoft rasmi untuk PHP adalah bahawa teknologi Microsoft yang lebih baru dapat memberi anda pilihan pembangunan yang serupa, sambil menggunakan sumber yang lebih sedikit dan masih berfungsi lintas platform, dan dengan peta jalan yang menyokong teknologi Web yang lebih baru.

ASP.NET Core adalah persekitaran lintas platform yang menggunakan kod .NET sisi pelayan untuk menyampaikan komponen HTML dan JavaScript. Dengan menggunakan runtime Core NET yang mudah alih, sintaks Razor ASP.NET Core menawarkan teknik pengaturcaraan deklaratif yang serupa dengan PHP. Namun, perbezaan besar datang apabila anda menggunakannya bersama dengan model pengaturcaraan Blazor di sisi pelayan.

Dengan fokus pada aplikasi Web satu halaman, Blazor Server melaksanakan kod ASP.NET pada pelayan Web anda, menyusun kandungan ke dalam komponen Web yang telah disediakan dengan sambungan Signal R antara kandungan penyemak imbas dan perkhidmatan back-end. Pendekatan ini mempunyai kelebihan memerlukan lebar jalur yang agak sedikit, dengan mengorbankan sedikit latensi dengan sambungan pergi balik antara pelayan dan penyemak imbas yang diperlukan untuk setiap interaksi. Pra-rendering kandungan dengan cara ini dapat membantu pengguna merasakan aplikasi lebih responsif, dengan interaksi menyegarkan komponen UI.

Pelancaran Aplikasi Web Azure Static baru-baru ini sebagai sebahagian daripada Perkhidmatan Aplikasi Azure membawa cara baru untuk membuat dan menggunakan kandungan Web ke Azure dan Windows. Dengan membina laman web secara tempatan menggunakan Visual Studio Code dan mengehoskan kandungan di GitHub, tindakan GitHub khusus menyebarkan kandungan yang diperbaharui ke Azure. Laman web dibina menggunakan HTML, JavaScript sisi pelanggan, dan sambungan API ke pangkalan data dan perkhidmatan lain.

Seperti Blazor dan PHP, Jamstack menggunakan pendekatan berdasarkan templat untuk reka bentuk laman web, walaupun kurang sesuai untuk CMS tradisional dan lebih banyak lagi untuk kandungan berasaskan fail yang dapat diedarkan melalui rangkaian penyampaian kandungan, menggunakannya untuk menyimpan kandungan yang lebih dekat dengan pengguna anda. Anda boleh membina laman web Aplikasi Azure Static berasaskan kandungan menggunakan teknik Jamstack, tetapi anda harus bersedia untuk membina semula keseluruhan laman web setiap kali anda menerbitkan kandungan baru.

Tamat sokongan Microsoft untuk membina PHP sendiri bukanlah bencana. Ini petanda bahawa keutamaan Redmond telah berubah; teknologi seperti WSL dan Linux yang dihoskan oleh Azure menawarkan jalan alternatif untuk membina dan menjalankan kod PHP.

Ini juga merupakan tanda bahawa pendekatan lain yang lebih moden untuk pengembangan aplikasi Web mungkin lebih sesuai dengan jalan Microsoft yang berpusat pada awan saat ini, dengan menggunakan .NET dan teknik pengembangan aplikasi moden. Apa sahaja yang anda buat, anda mempunyai banyak pilihan.