com web/windows: Document how to set up development environment: .gitignore README.md dev/generate_fake_downloads.php
| From: | Christoph Michael Becker | Date: | Mon, 25 Jan 2021 14:12:15 +0000 |
| Subject: | com web/windows: Document how to set up development environment: .gitignore README.md dev/generate_fake_downloads.php | ||
| Groups: | php.webmaster | ||
| Request: | Send a blank email to php-webmaster+get-29068@lists.php.net to get a copy of this message | ||
Commit: 2af38e65cb90aa89274c68b3a53f90c4d295559e
Author: Christoph M. Becker <cmbecker69@gmx.de> Mon, 25 Jan 2021 15:11:19 +0100
Parents: 895ee072f1e2a9f2625ccccb7adee7061fb93df8
Branches: master
Link: http://git.php.net/?p=web/windows.git;a=commitdiff;h=2af38e65cb90aa89274c68b3a53f90c4d295559e
Log:
Document how to set up development environment
We also add a
generate_fake_downloads.php script, so the Website is
usable for development without having to download all the required
files.
Changed paths:
M .gitignore
A README.md
A dev/generate_fake_downloads.php
Diff:
diff --git a/.gitignore b/.gitignore
index 612b0dd..f659036 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,9 @@
data/*.json
+data/site_generate_listing.lock
logs/*.log
logs/*/*.log
docroot/snapshot.html
+docroot/web.config
docroot/downloads/pecl/
docroot/downloads/php-sdk/
docroot/downloads/pickle/
@@ -9,4 +11,3 @@ docroot/downloads/qa/
docroot/downloads/releases/
docroot/downloads/snaps/
docroot/downloads/nano/
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5d25296
--- /dev/null
+++ b/README.md
@@ -0,0 +1,13 @@
+# The sources of the PHP for Windows Website
+
+## Local development
+
+You need IIS and PHP.
+
+* git clone git@github.com:php/web-windows.git
+* adapt the BASE_URL and APP_PATH in include\config.php to
point to the current working directory
+* php dev\generate_fake_downloads.php
+* php script\generate_snap_page.php
+* set up IIS PHP Website for APP_PATH with index.php as default document
+* set up TLS for that Website or comment out the HTTPS redirection section in
templates\web.config.tpl
+* visit /listing.php; this generates web.config in the docroot, so the
Website is fully usable. You have to make sure that your Website configuration is done in the global
applicationHost.config, or you have to integrate the local setup into
templates\web.config.tpl.
diff --git a/dev/generate_fake_downloads.php b/dev/generate_fake_downloads.php
new file mode 100644
index 0000000..243bd42
--- /dev/null
+++ b/dev/generate_fake_downloads.php
@@ -0,0 +1,162 @@
+<?php
+
+include __DIR__ . '/../include/config.php';
+
+$versions = ['7.3.26', '7.4.14', '8.0.1'];
+
+/*
+ * releases
+ */
+
+$dir = RELEASES_DIR;
+@mkdir($dir);
+foreach ($versions as $version) {
+ switch (true) {
+ case version_compare($version, '7.4.0') < 0:
+ $vc = 'VC15';
+ break;
+ case version_compare($version, '8.0.0') < 0:
+ $vc = 'vc15';
+ break;
+ default:
+ $vc = 'vs16';
+ }
+ touch("{$dir}php-{$version}-nts-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-{$version}-nts-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-{$version}-src.zip");
+ touch("{$dir}php-{$version}-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-{$version}-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-debug-pack-{$version}-nts-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-debug-pack-{$version}-nts-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-debug-pack-{$version}-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-debug-pack-{$version}-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-devel-pack-{$version}-nts-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-devel-pack-{$version}-nts-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-devel-pack-{$version}-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-devel-pack-{$version}-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-test-pack-{$version}.zip");
+}
+
+$sha256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
+$sha_file = fopen("{$dir}sha256sum.txt", 'w');
+foreach (scandir($dir) as $filename) {
+ if (pathinfo($filename, PATHINFO_EXTENSION) !== 'zip') continue;
+ fwrite($sha_file, "{$sha256} *{$filename}\n");
+}
+fclose($sha_file);
+
+/*
+ * qa
+ */
+
+$dir = QA_DIR;
+@mkdir($dir);
+foreach ($versions as $version) {
+ switch (true) {
+ case version_compare($version, '7.4.0') < 0:
+ $vc = 'VC15';
+ break;
+ case version_compare($version, '8.0.0') < 0:
+ $vc = 'vc15';
+ break;
+ default:
+ $vc = 'vs16';
+ }
+ touch("{$dir}php-{$version}RC1-nts-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-{$version}RC1-nts-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-{$version}RC1-src.zip");
+ touch("{$dir}php-{$version}RC1-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-{$version}RC1-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-debug-pack-{$version}RC1-nts-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-debug-pack-{$version}RC1-nts-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-debug-pack-{$version}RC1-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-debug-pack-{$version}RC1-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-devel-pack-{$version}RC1-nts-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-devel-pack-{$version}RC1-nts-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-devel-pack-{$version}RC1-Win32-{$vc}-x64.zip");
+ touch("{$dir}php-devel-pack-{$version}RC1-Win32-{$vc}-x86.zip");
+ touch("{$dir}php-test-pack-{$version}RC1.zip");
+}
+
+$sha256 = 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855';
+$sha_file = fopen("{$dir}sha256sum.txt", 'w');
+foreach (scandir($dir) as $filename) {
+ if (pathinfo($filename, PATHINFO_EXTENSION) !== 'zip') continue;
+ fwrite($sha_file, "{$sha256} *{$filename}\n");
+}
+fclose($sha_file);
+
+/*
+ * snaps
+ */
+
+$versions = [
+ 'php-7.3' => [
+ "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9",
+ "revision_previous" => null,
+ "revision_last_exported" => "65d7ade",
+ "build_num" => 5,
+ "builds" => [
+ "nts-windows-vc15-x64",
+ "nts-windows-vc15-x86",
+ "ts-windows-vc15-x86",
+ "ts-windows-vc15-x64",
+ "nts-windows-vc15-x64-avx"
+ ]
+ ],
+ 'php-7.4' => [
+ "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9",
+ "revision_previous" => null,
+ "revision_last_exported" => "65d7ade",
+ "build_num" => 5,
+ "builds" => [
+ "nts-windows-vc15-x64",
+ "nts-windows-vc15-x86",
+ "ts-windows-vc15-x86",
+ "ts-windows-vc15-x64",
+ "nts-windows-vc15-x64-avx"
+ ]
+ ],
+ 'php-8.0' => [
+ "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9",
+ "revision_previous" => null,
+ "revision_last_exported" => "65d7ade",
+ "build_num" => 5,
+ "builds" => [
+ "nts-windows-vs16-x64",
+ "nts-windows-vs16-x86",
+ "ts-windows-vs16-x86",
+ "ts-windows-vs16-x64",
+ "nts-windows-vs16-x64-avx"
+ ]
+ ],
+ 'master' => [
+ "revision_last" => "65d7ade6842bcf06b3d2ed59a796bdd78d073df9",
+ "revision_previous" => null,
+ "revision_last_exported" => "65d7ade",
+ "build_num" => 5,
+ "builds" => [
+ "nts-windows-vs16-x64",
+ "nts-windows-vs16-x86",
+ "ts-windows-vs16-x86",
+ "ts-windows-vs16-x64",
+ "nts-windows-vs16-x64-avx"
+ ]
+ ],
+];
+$json =
'{"stats":{"warning":0,"error":0},"has_php_pkg":true,"has_debug_pkg":false,"has_devel_pkg":false,"has_test_pkg":false}';
+$dir = SNAPS_DIR;
+@mkdir($dir);
+foreach ($versions as $version => $snap_meta) {
+ @mkdir("{$dir}{$version}");
+ file_put_contents("{$dir}{$version}/{$version}.json", json_encode($snap_meta));
+ $rev = $snap_meta['revision_last_exported'];
+ $revdir = "{$dir}{$version}/r{$rev}";
+ @mkdir($revdir);
+ touch("{$revdir}/{$version}-src-r{$rev}.zip");
+ foreach ($snap_meta['builds'] as $build) {
+ file_put_contents("{$revdir}/{$build}.json", $json);
+ $prefix = strncmp($version, 'php', 3) ? "php-{$version}" : $version;
+ file_put_contents("{$revdir}/{$prefix}-{$build}-r{$rev}.zip", '*');
+ }
+}