Author: Ayesh Karunaratne (Ayesh)
Pusher: shivammathur
Date: 2025-10-26T19:40:28+07:00

Commit: 
https://github.com/php/web-php/commit/a27df08b8a482fcef149e236aea6137a8987f5fa
Raw diff: 
https://github.com/php/web-php/commit/a27df08b8a482fcef149e236aea6137a8987f5fa.diff

Downloads: Add `winget` download instrunctions

Adds support for downloading Windows PHP binaries using `winget`.

Both TS and NTS builds are now available on `microsoft/winget-pkgs`[1]
repo, and I have been maintaining them for a while now.

When a new PHP release is found, the manifests are automatically[^2]
built and the manifests are attested[^3]. I submit PRs[^4] after
manually checking if everything is in order.

This PR updates the new `downloads.php` page with `winget`-specific
download instructions.

 - When the Usage field is set to CLI, the winget instructions refer to
   NTS builds (e.g `PHP.PHP.NTS.8.4`)
 - Other Usage values use the TS builds (e.g. `PHP.PHP.8.4`).

[^1]: https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/PHP/PHP
[^2]: https://github.com/PHPWatch/php-winget-manifest/
[^3]: https://github.com/PHPWatch/php-winget-manifest/attestations
[^4]: https://github.com/microsoft/winget-pkgs/pulls?q=is%3Apr+%5BPHP%5D

Changed paths:
  A  include/download-instructions/windows-winget.php
  M  downloads.php


Diff:

diff --git a/downloads.php b/downloads.php
index 65993ce5f1..907095dce1 100644
--- a/downloads.php
+++ b/downloads.php
@@ -88,6 +88,7 @@ function option(string $value, string $desc, $attributes = 
[]): string
             'windows-native' => 'Single Line Installer',
             'windows-chocolatey' => 'Chocolatey',
             'windows-scoop' => 'Scoop',
+            'windows-winget' => 'Winget',
             'windows-docker' => 'Docker',
             'windows-wsl-debian' => 'WSL/Debian',
             'windows-wsl-ubuntu' => 'WSL/Ubuntu',
diff --git a/include/download-instructions/windows-winget.php 
b/include/download-instructions/windows-winget.php
new file mode 100644
index 0000000000..e21ccd24a5
--- /dev/null
+++ b/include/download-instructions/windows-winget.php
@@ -0,0 +1,20 @@
+<p>
+On the command line, run the following commands:
+</p>
+<?php
+
+$wingetPackageName = 'PHP.PHP.' . $version;
+$wingetPackageDescription = 'PHP ' . $version . ' - Thread-safe';
+
+if (isset($options['usage']) && $options['usage'] === 'cli') {
+    $wingetPackageName = 'PHP.PHP.NTS.' . $version;
+    $wingetPackageDescription = 'PHP ' . $version . ' - Not-Thread safe';
+}
+?>
+<pre><code class="language-powershell line-numbers">
+# Download and install <?= $wingetPackageDescription ?>
+
+winget install <?= $wingetPackageName ?>
+</code></pre>
+<?php
+unset($wingetPackageDescription, $wingetPackageName);

Reply via email to