diff --git a/README.md b/README.md index 6345f51..636348f 100644 --- a/README.md +++ b/README.md @@ -206,3 +206,25 @@ previously. - `7za` should be preferred over `unzip` and `zip` for compatibility reasons. - If you experience some strange crashes on MSYS2 tools, try the phpsdk_rebase_msys2 tool. MSYS2 tools might be have unstable on ASLR enabled systems. + +# Internal notes + +## Releases + +Users of the PHP SDK are supposed to use tagged versions for stability and +reproducability. This requires the maintainers of the PHP SDK to create such +tags for *all* *relevant* *changes*. The tag format should be `php-sdk-X.Y.Z`, +with the common major, minor and revision numbers. + +Comprehensive changes, which would be hard to test extensively, such as updates +to the bundled PHP or the MinGW tools, should walk through a QA (aka. pre-release) +process, typically with beta versions (e.g. `php-sdk-X.Y.Zbeta1`). Only after +these have been thoroughly tested, and all relevant issues have been resolved, +a GA release should be tagged. + +After each tag, a couple of other repositories should be informed about the +available update, ideally in form of a pull request. These repositories are: + +* https://github.com/php/php-src (for Windows CI) +* https://github.com/php/php-windows-builder +* https://github.com/php/setup-php-sdk diff --git a/VERSION b/VERSION index a429ee9..39901a4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.1-dev +2.4.0-dev diff --git a/bin/7za.dll b/bin/7za.dll index e95542c..cf19f1b 100644 Binary files a/bin/7za.dll and b/bin/7za.dll differ diff --git a/bin/7za.exe b/bin/7za.exe old mode 100644 new mode 100755 index d516eb5..ada25ff Binary files a/bin/7za.exe and b/bin/7za.exe differ diff --git a/bin/7zxa.dll b/bin/7zxa.dll index 1e3778a..e0f55bc 100644 Binary files a/bin/7zxa.dll and b/bin/7zxa.dll differ diff --git a/bin/deplister.exe b/bin/deplister.exe old mode 100644 new mode 100755 diff --git a/bin/jq.exe b/bin/jq.exe old mode 100644 new mode 100755 diff --git a/bin/lemon.exe b/bin/lemon.exe old mode 100644 new mode 100755 diff --git a/bin/php/do_php.bat b/bin/php/do_php.bat old mode 100644 new mode 100755 diff --git a/bin/php/ext/php_curl.dll b/bin/php/ext/php_curl.dll index a3e7cdc..7e26962 100644 Binary files a/bin/php/ext/php_curl.dll and b/bin/php/ext/php_curl.dll differ diff --git a/bin/php/ext/php_ftp.dll b/bin/php/ext/php_ftp.dll index afa0d6a..e552dcb 100644 Binary files a/bin/php/ext/php_ftp.dll and b/bin/php/ext/php_ftp.dll differ diff --git a/bin/php/ext/php_mbstring.dll b/bin/php/ext/php_mbstring.dll index 6f45be3..8dacdaa 100644 Binary files a/bin/php/ext/php_mbstring.dll and b/bin/php/ext/php_mbstring.dll differ diff --git a/bin/php/ext/php_mysqli.dll b/bin/php/ext/php_mysqli.dll index 845c6e5..4fe11f7 100644 Binary files a/bin/php/ext/php_mysqli.dll and b/bin/php/ext/php_mysqli.dll differ diff --git a/bin/php/ext/php_openssl.dll b/bin/php/ext/php_openssl.dll index 2cdc899..66b9c68 100644 Binary files a/bin/php/ext/php_openssl.dll and b/bin/php/ext/php_openssl.dll differ diff --git a/bin/php/ext/php_sqlite3.dll b/bin/php/ext/php_sqlite3.dll index fcb5a1e..d4cbf4f 100644 Binary files a/bin/php/ext/php_sqlite3.dll and b/bin/php/ext/php_sqlite3.dll differ diff --git a/bin/php/ext/php_zip.dll b/bin/php/ext/php_zip.dll new file mode 100644 index 0000000..4d0665e Binary files /dev/null and b/bin/php/ext/php_zip.dll differ diff --git a/bin/php/libcrypto-1_1-x64.dll b/bin/php/libcrypto-1_1-x64.dll deleted file mode 100644 index 49c0b56..0000000 Binary files a/bin/php/libcrypto-1_1-x64.dll and /dev/null differ diff --git a/bin/php/libcrypto-3-x64.dll b/bin/php/libcrypto-3-x64.dll new file mode 100644 index 0000000..bd8a44a Binary files /dev/null and b/bin/php/libcrypto-3-x64.dll differ diff --git a/bin/php/libsqlite3.dll b/bin/php/libsqlite3.dll index 42b90a3..8ece6a4 100644 Binary files a/bin/php/libsqlite3.dll and b/bin/php/libsqlite3.dll differ diff --git a/bin/php/libssh2.dll b/bin/php/libssh2.dll index 2390d41..c15596d 100644 Binary files a/bin/php/libssh2.dll and b/bin/php/libssh2.dll differ diff --git a/bin/php/libssl-1_1-x64.dll b/bin/php/libssl-1_1-x64.dll deleted file mode 100644 index c7c94a1..0000000 Binary files a/bin/php/libssl-1_1-x64.dll and /dev/null differ diff --git a/bin/php/libssl-3-x64.dll b/bin/php/libssl-3-x64.dll new file mode 100644 index 0000000..9d46d4d Binary files /dev/null and b/bin/php/libssl-3-x64.dll differ diff --git a/bin/php/nghttp2.dll b/bin/php/nghttp2.dll index f9e2ecf..a260920 100644 Binary files a/bin/php/nghttp2.dll and b/bin/php/nghttp2.dll differ diff --git a/bin/php/php.exe b/bin/php/php.exe old mode 100644 new mode 100755 index 683bc24..8f51599 Binary files a/bin/php/php.exe and b/bin/php/php.exe differ diff --git a/bin/php/php.ini b/bin/php/php.ini index 5fc05c7..2cb9c24 100644 --- a/bin/php/php.ini +++ b/bin/php/php.ini @@ -5,6 +5,7 @@ extension=php_sqlite3.dll extension=php_openssl.dll extension=php_mbstring.dll extension=php_mysqli.dll +extension=php_zip.dll memory_limit=4G error_reporting=-1 diff --git a/bin/php/php8.dll b/bin/php/php8.dll index f67be7d..985219a 100644 Binary files a/bin/php/php8.dll and b/bin/php/php8.dll differ diff --git a/bin/phpsdk_buildtree.bat b/bin/phpsdk_buildtree.bat old mode 100644 new mode 100755 diff --git a/bin/phpsdk_deps.bat b/bin/phpsdk_deps.bat old mode 100644 new mode 100755 diff --git a/bin/phpsdk_dllmap.bat b/bin/phpsdk_dllmap.bat old mode 100644 new mode 100755 diff --git a/bin/phpsdk_dllmap.php b/bin/phpsdk_dllmap.php index 5f5020d..3ce5dc5 100644 --- a/bin/phpsdk_dllmap.php +++ b/bin/phpsdk_dllmap.php @@ -65,7 +65,7 @@ continue; } - if (!preg_match(",.*-(vc\d+)-(x\d\d)\.zip,", $filename, $m)) { + if (!preg_match(",.*-(v[c|s]\d+)-(x\d\d)\.zip,", $filename, $m)) { continue; } diff --git a/bin/phpsdk_dumpenv.bat b/bin/phpsdk_dumpenv.bat old mode 100644 new mode 100755 diff --git a/bin/phpsdk_pgo.bat b/bin/phpsdk_pgo.bat old mode 100644 new mode 100755 diff --git a/bin/phpsdk_setshell.bat b/bin/phpsdk_setshell.bat old mode 100644 new mode 100755 index 8c41734..224c7f5 --- a/bin/phpsdk_setshell.bat +++ b/bin/phpsdk_setshell.bat @@ -60,7 +60,7 @@ if NOT "%3"=="" SET TOOLSET=%3 rem check OS arch rem todo: allow user choose host sdk arch (i.e. x64 target can be compiled at x64(native) or x86(cross)) -for /f "usebackq tokens=1*" %%i in (`wmic cpu get Architecture /value /format:table ^| findstr /r "[1234567890][1234567890]*"`) do ( +for /f "usebackq tokens=*" %%i in (`powershell -NoProfile -Command "Get-CimInstance -ClassName Win32_Processor | Select-Object -ExpandProperty Architecture"`) do ( set PHP_SDK_OS_ARCH_NUM=%%i ) diff --git a/bin/phpsdk_setvars.bat b/bin/phpsdk_setvars.bat old mode 100644 new mode 100755 diff --git a/bin/phpsdk_version.bat b/bin/phpsdk_version.bat old mode 100644 new mode 100755 diff --git a/bin/sqlite3.exe b/bin/sqlite3.exe old mode 100644 new mode 100755 diff --git a/bin/task.exe b/bin/task.exe old mode 100644 new mode 100755 diff --git a/bin/vswhere.exe b/bin/vswhere.exe old mode 100644 new mode 100755 index 096d016..2603826 Binary files a/bin/vswhere.exe and b/bin/vswhere.exe differ diff --git a/lib/php/libsdk/SDK/Build/Dependency/Fetcher.php b/lib/php/libsdk/SDK/Build/Dependency/Fetcher.php index 8b8349a..00f4347 100644 --- a/lib/php/libsdk/SDK/Build/Dependency/Fetcher.php +++ b/lib/php/libsdk/SDK/Build/Dependency/Fetcher.php @@ -8,13 +8,23 @@ class Fetcher { use FileOps; + /** @var string */ protected $host; + + /** @var int */ protected $port; + + /** @var ?string */ protected $stability; + + /** @var ?string */ protected $arch; + + /** @var Series */ protected $series; - protected $scheme; + /** @var string */ + protected $scheme; public function __construct(string $host, int $port, string $scheme = "https", string $arch = NULL, string $stability = NULL, Series $series = NULL) {/*{{{*/ diff --git a/lib/php/libsdk/SDK/Build/Dependency/Manager.php b/lib/php/libsdk/SDK/Build/Dependency/Manager.php index 0cd40a1..1db68cd 100644 --- a/lib/php/libsdk/SDK/Build/Dependency/Manager.php +++ b/lib/php/libsdk/SDK/Build/Dependency/Manager.php @@ -8,12 +8,25 @@ class Manager { use FileOps; + /** @var string */ protected $stability; + + /** @var string */ protected $arch; + + /** @var string */ protected $path; + + /** @var Cache */ protected $cache; + + /** @var Series */ protected $series; + + /** @var Fetcher */ protected $fetcher; + + /** @var ?bool */ protected $updatesFlag = NULL; public function __construct(string $path, string $stability, string $arch) diff --git a/lib/php/libsdk/SDK/Build/Dependency/Package.php b/lib/php/libsdk/SDK/Build/Dependency/Package.php index dec276b..3e5703c 100644 --- a/lib/php/libsdk/SDK/Build/Dependency/Package.php +++ b/lib/php/libsdk/SDK/Build/Dependency/Package.php @@ -8,9 +8,16 @@ class Package { use FileOps; + /** @var string */ protected $name; + + /** @var Series */ protected $series; + + /** @var Fetcher */ protected $fetcher; + + /** @var string */ protected $filepath; public function __construct(string $name, Series $series, Fetcher $fetcher) diff --git a/lib/php/libsdk/SDK/Build/Dependency/Series.php b/lib/php/libsdk/SDK/Build/Dependency/Series.php index 496df97..958f195 100644 --- a/lib/php/libsdk/SDK/Build/Dependency/Series.php +++ b/lib/php/libsdk/SDK/Build/Dependency/Series.php @@ -8,10 +8,19 @@ class Series { + /** @var ?Fetcher */ protected $fetcher; + + /** @var string */ protected $stability; + + /** @var string */ protected $arch; + + /** @var string */ protected $rawData; + + /** @var Cache */ protected $cache; public function __construct(string $stability, string $arch, Cache $cache, Fetcher $fetcher = NULL) @@ -59,6 +68,7 @@ protected function getUri() : string return "$base/series/$file"; }/*}}}*/ + /** @return array|string */ public function getData(bool $raw = false, bool $cache = true) {/*{{{*/ if ($cache && $this->rawData) { diff --git a/lib/php/libsdk/SDK/Build/PGO/Abstracts/PHP.php b/lib/php/libsdk/SDK/Build/PGO/Abstracts/PHP.php index d6090d6..cfeb007 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Abstracts/PHP.php +++ b/lib/php/libsdk/SDK/Build/PGO/Abstracts/PHP.php @@ -7,13 +7,25 @@ abstract class PHP { + /** @var string */ protected $php_root; + + /** @var string */ protected $php_ext_root; + + /** @var string */ protected $opcache_file_cache; + + /** @var string */ protected $id; + + /** @var string */ protected $scenario; + + /** @var \SDK\Build\PGO\Config */ protected $conf; + /** @return void */ protected function setupPaths() { $this->php_root = $this->getRootDir(); @@ -30,12 +42,15 @@ protected function setupPaths() } } + abstract public function getExeFilename() : string; + /* TODO Might be improved. */ public function isDist() : bool { return !file_exists("Makefile") && file_exists("php.exe"); } + /** @return array */ protected function createEnv() : array { $env = getenv(); @@ -96,7 +111,7 @@ public function getRootDir() : string public function getVersion(bool $short = false) : string { $ret = NULL; - $cli = new CLI($this->conf, $this->scenario); + $cli = new CLI($this->conf); $out = shell_exec($cli->getExeFilename() . " -n -v"); @@ -119,7 +134,7 @@ public function getVersion(bool $short = false) : string public function isThreadSafe() : bool { - $cli = new CLI($this->conf, $this->scenario); + $cli = new CLI($this->conf); $out = shell_exec($cli->getExeFilename() . " -n -v"); @@ -131,6 +146,7 @@ public function isThreadSafe() : bool } /* Need to cleanup it somewhere. */ + /** @return string */ public function getIniFilename() { $ret = tempnam(sys_get_temp_dir(), "ini"); @@ -163,6 +179,7 @@ public function getIniFilename() return $ret; } + /** @return string */ protected function getIniTplFilename() { $tpl_path = $this->conf->getTplDir("php"); @@ -178,6 +195,7 @@ protected function getIniTplFilename() return $construct; } + /** @param array $extra_env */ public function exec(string $php_cmd, string $args = NULL, array $extra_env = array()) : int { $env = $this->createEnv(); diff --git a/lib/php/libsdk/SDK/Build/PGO/Abstracts/Server.php b/lib/php/libsdk/SDK/Build/PGO/Abstracts/Server.php index 8a5cfd8..bf4c915 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Abstracts/Server.php +++ b/lib/php/libsdk/SDK/Build/PGO/Abstracts/Server.php @@ -6,6 +6,12 @@ abstract class Server { + /** @var string */ + protected $name; + + /** @var Interfaces\PHP */ + protected $php; + public function getName() : string { return $this->name; diff --git a/lib/php/libsdk/SDK/Build/PGO/Abstracts/TrainingCase.php b/lib/php/libsdk/SDK/Build/PGO/Abstracts/TrainingCase.php index 522e740..20294b0 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Abstracts/TrainingCase.php +++ b/lib/php/libsdk/SDK/Build/PGO/Abstracts/TrainingCase.php @@ -3,19 +3,27 @@ namespace SDK\Build\PGO\Abstracts; use SDK\FileOps; +use SDK\Build\PGO\Interfaces; use SDK\Build\PGO\Tool; -abstract class TrainingCase +abstract class TrainingCase implements Interfaces\TrainingCase { use FileOps; const TYPE_WEB = "web"; const TYPE_CLI = "cli"; + /** @var array */ protected $stat = array(); + /** @var \SDK\Build\PGO\Config */ protected $conf; + /** @var mixed */ + protected $php; + + abstract public function getName() : string; + public function getType() : string { $type = $this->conf->getSectionItem($this->getName(), "type"); diff --git a/lib/php/libsdk/SDK/Build/PGO/Config.php b/lib/php/libsdk/SDK/Build/PGO/Config.php index faad93f..c21e8da 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Config.php +++ b/lib/php/libsdk/SDK/Build/PGO/Config.php @@ -11,11 +11,22 @@ class Config const MODE_REINIT = 2; /* currently unused */ const MODE_CHECK_INIT = 3; + /** @var int */ protected $mode; + + /** @var int */ protected $last_port = 8081; + + /** @var array */ protected $sections = array(); + + /** @var string */ protected $scenario = "default"; + + /** @var array */ protected $tpl_vars = array(); + + /** @var array */ protected $srv = array(); public function __construct(int $mode = self::MODE_RUN) @@ -67,6 +78,7 @@ protected function initWorkDir() : void } } + /** @return bool */ public function isInitialized() { /* XXX Could be some better check. */ @@ -161,6 +173,7 @@ public function getCasesTplDir(string $name = NULL) : string return $ret; } + /** @param string ...$args */ public function sectionItemExists(...$args) : bool { $i = 0; @@ -178,6 +191,10 @@ public function sectionItemExists(...$args) : bool return $i == count($args); } + /** + * @param string ...$args + * @return mixed + */ public function getSectionItem(...$args) { $i = 0; @@ -199,6 +216,7 @@ public function getSectionItem(...$args) return $it; } + /** @param string|int ...$args */ public function setSectionItem(...$args) : void { $val = array_pop($args); @@ -238,6 +256,7 @@ protected function syncTplVars() : void } } + /** @param string ...$args */ public function buildTplVarName(...$args) : string { $tpl_k = array("PHP_SDK_PGO"); @@ -249,6 +268,7 @@ public function buildTplVarName(...$args) : string return implode("_", $tpl_k); } + /** @param array $section */ protected function importTplVars(string $section_name, array $section) : void { foreach($section as $k0 => $v0) { @@ -266,6 +286,7 @@ protected function importTplVars(string $section_name, array $section) : void } } + /** @param array $additional_vars */ public function processTpl(string $s, array $additional_vars = array()) : string { $vars = array_merge($this->tpl_vars, $additional_vars); @@ -275,6 +296,7 @@ public function processTpl(string $s, array $additional_vars = array()) : string return $s; } + /** @param array $additional_vars */ public function processTplFile(string $tpl_fn, string $dst_fn, array $additional_vars = array()) : void { if (!file_exists($tpl_fn)) { @@ -293,6 +315,7 @@ public function processTplFile(string $tpl_fn, string $dst_fn, array $additional } } + /** @return string */ public function getWorkSectionsFilename() { return $this->getWorkDir() . DIRECTORY_SEPARATOR . "phpsdk_pgo.json"; @@ -338,6 +361,10 @@ public function getSdkPhpCmd() : string return getenv("PHP_SDK_PHP_CMD"); } + /** + * @param Interfaces\Server $item + * @return void + */ public function addSrv($item) : void { $name = strtolower($item->getName()); @@ -350,6 +377,7 @@ public function addSrv($item) : void $this->srv[$name] = $item; } + /** @return array|Interfaces\Server|null */ public function getSrv(?string $name = NULL) { $ret = NULL; diff --git a/lib/php/libsdk/SDK/Build/PGO/Controller.php b/lib/php/libsdk/SDK/Build/PGO/Controller.php index 076a624..da21189 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Controller.php +++ b/lib/php/libsdk/SDK/Build/PGO/Controller.php @@ -13,11 +13,19 @@ class Controller { + /** @var string */ protected $cmd; + + /** @var ?string */ protected $scenario; + + /** @var PGOConfig */ protected $conf; + + /** @var array|null */ protected $cases; + /** @param array|null $cases */ public function __construct(string $cmd, ?string $scenario, ?array $cases) { $this->cmd = $cmd; @@ -29,6 +37,7 @@ public function __construct(string $cmd, ?string $scenario, ?array $cases) $this->cases = $cases; } + /** @return mixed */ protected function vitalizeSrv() { $all = $this->conf->getSrv("all"); @@ -47,12 +56,15 @@ protected function vitalizeSrv() return $all; } + /** + * @param string $cmd + * @return PGOConfig + */ protected function setupConfig($cmd) { switch ($cmd) { default: throw new Exception("Unknown action '{$cmd}'."); - break; case "check_init": $cnf = new PGOConfig(PGOConfig::MODE_CHECK_INIT); break; @@ -69,6 +81,10 @@ protected function setupConfig($cmd) return $cnf; } + /** + * @param bool $force + * @return void + */ public function handle($force) { /*$mode = (int)("init" !== $this->cmd); @@ -80,7 +96,6 @@ public function handle($force) switch ($this->cmd) { default: throw new Exception("Unknown action '{$this->cmd}'."); - break; case "init": $lk = new Lock("pgo_init"); if (!$lk->locked()) { @@ -140,7 +155,6 @@ protected function prepareStandaloneTools(PackageWorkman $pw, bool $force = fals if (!file_exists($composer) || $force) { /* XXX this needs to go into the config, specifically for composer maybe even separate class. */ $url = "https://getcomposer.org/installer"; - /* XXX remove the explicit version option when symfony demo is fixed. */ $tool = $this->conf->getToolsDir() . DIRECTORY_SEPARATOR . "composer-setup.php"; $pw->fetch($url, $tool, $force); $php->exec("$tool --install-dir=" . $this->conf->getToolsDir()); @@ -148,6 +162,7 @@ protected function prepareStandaloneTools(PackageWorkman $pw, bool $force = fals } } + /** @return void */ public function init(bool $force = false) { echo "\nInitializing PGO training environment.\n\n"; @@ -181,11 +196,13 @@ public function init(bool $force = false) echo "PGO training environment Initialization complete.\n"; } + /** @return bool */ public function isInitialized() { return $this->conf->isinitialized(); } + /** @return void */ public function train() { if (!$this->isInitialized()) { @@ -234,6 +251,7 @@ public function train() echo "PGO training complete.\n"; } + /** @return void */ public function up() { @@ -242,7 +260,7 @@ public function up() } echo "\nStarting up PGO environment.\n\n"; - foreach ($this->vitalizeSrv("all") as $srv) { + foreach ($this->vitalizeSrv() as $srv) { $srv->up(); echo "\n"; } @@ -252,6 +270,7 @@ public function up() echo "The PGO environment is up.\n"; } + /** @return void */ public function down(bool $force = false) { if (!$this->isInitialized()) { @@ -260,7 +279,7 @@ public function down(bool $force = false) /* XXX check it was started of course. */ echo "\nShutting down PGO environment.\n\n"; - foreach ($this->vitalizeSrv("all") as $srv) { + foreach ($this->vitalizeSrv() as $srv) { $srv->down($force); echo "\n"; } diff --git a/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server.php b/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server.php index edfbf10..0007d31 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server.php +++ b/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server.php @@ -12,4 +12,7 @@ public function init() : void; public function up() : void; public function down(bool $force = false) : void; public function getName() : string; + + /** @return \SDK\Build\PGO\Interfaces\PHP */ + public function getPhp(); } diff --git a/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server/HTTP.php b/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server/HTTP.php index e7a62b4..588a582 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server/HTTP.php +++ b/lib/php/libsdk/SDK/Build/PGO/Interfaces/Server/HTTP.php @@ -9,5 +9,10 @@ interface HTTP extends Interfaces\Server { public function __construct(Config $conf, Interfaces\PHP $php); public function getPhp() : Interfaces\PHP; + + /** + * @param array $tpl_vars + * @return void + */ public function addServer(string $part_tpl_fn, array $tpl_vars = array()); } diff --git a/lib/php/libsdk/SDK/Build/PGO/PHP/FCGI.php b/lib/php/libsdk/SDK/Build/PGO/PHP/FCGI.php index 49005c2..28c849e 100644 --- a/lib/php/libsdk/SDK/Build/PGO/PHP/FCGI.php +++ b/lib/php/libsdk/SDK/Build/PGO/PHP/FCGI.php @@ -12,6 +12,7 @@ class FCGI extends Abstracts\PHP implements Interfaces\PHP { use FileOps; + /** @var bool */ protected $is_tcp; public function __construct(PGOConfig $conf, bool $is_tcp) diff --git a/lib/php/libsdk/SDK/Build/PGO/Server/MariaDB.php b/lib/php/libsdk/SDK/Build/PGO/Server/MariaDB.php index 40d1981..c59aba0 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Server/MariaDB.php +++ b/lib/php/libsdk/SDK/Build/PGO/Server/MariaDB.php @@ -12,8 +12,13 @@ class MariaDB extends Server implements DB { use FileOps; + /** @var PGOConfig */ protected $conf; + + /** @var string */ protected $base; + + /** @var string */ protected $name = "MariaDB"; public function __construct(PGOConfig $conf) @@ -22,6 +27,7 @@ public function __construct(PGOConfig $conf) $this->base = $conf->getSrvDir(strtolower($this->name)); } + /** @return void */ protected function setupDist() { /* pass */ diff --git a/lib/php/libsdk/SDK/Build/PGO/Server/NGINX.php b/lib/php/libsdk/SDK/Build/PGO/Server/NGINX.php index 0066f76..107b1d3 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Server/NGINX.php +++ b/lib/php/libsdk/SDK/Build/PGO/Server/NGINX.php @@ -12,9 +12,16 @@ class NGINX extends Abstracts\Server implements Interfaces\Server\HTTP { use FileOps; + /** @var string */ protected $name = "NGINX"; + + /** @var PGOConfig */ protected $conf; + + /** @var string */ protected $base; + + /** @var Interfaces\PHP */ protected $php; public function __construct(PGOConfig $conf, Interfaces\PHP $php) @@ -125,6 +132,10 @@ public function down(bool $force = false) : void } /* Use only for init phase! */ + /** + * @param array $tpl_vars + * @return void + */ public function addServer(string $part_tpl_fn, array $tpl_vars = array()) { if (!file_exists($part_tpl_fn)) { diff --git a/lib/php/libsdk/SDK/Build/PGO/Server/PostgreSQL.php b/lib/php/libsdk/SDK/Build/PGO/Server/PostgreSQL.php index f42d28e..f4c08da 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Server/PostgreSQL.php +++ b/lib/php/libsdk/SDK/Build/PGO/Server/PostgreSQL.php @@ -12,9 +12,16 @@ class PostgreSQL extends Server implements DB { use FileOps; + /** @var PGOConfig */ protected $conf; + + /** @var string */ protected $base; + + /** @var string */ protected $data_dir; + + /** @var string */ protected $name = "PostgreSQL"; public function __construct(PGOConfig $conf) @@ -24,6 +31,7 @@ public function __construct(PGOConfig $conf) $this->data_dir = $this->base . DIRECTORY_SEPARATOR . "data"; } + /** @return void */ protected function setupDist() { $user = $this->conf->getSectionItem($this->name, "user"); diff --git a/lib/php/libsdk/SDK/Build/PGO/Tool/PGO.php b/lib/php/libsdk/SDK/Build/PGO/Tool/PGO.php index e9e025c..e592ad8 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Tool/PGO.php +++ b/lib/php/libsdk/SDK/Build/PGO/Tool/PGO.php @@ -8,8 +8,13 @@ class PGO { + /** @var Interfaces\PHP */ protected $php; + + /** @var PGOConfig */ protected $conf; + + /** @var int */ protected $idx = 0; public function __construct(PGOConfig $conf, Interfaces\PHP $php) @@ -34,6 +39,7 @@ protected function getPgdName(string $fname) : string return $dn . DIRECTORY_SEPARATOR . $bn . ".pgd"; } + /** @return array */ protected function getWorkItems() : array { $exe = glob($this->php->getRootDir() . DIRECTORY_SEPARATOR . "*.exe"); diff --git a/lib/php/libsdk/SDK/Build/PGO/Tool/PackageWorkman.php b/lib/php/libsdk/SDK/Build/PGO/Tool/PackageWorkman.php index b3ebd7a..9ccd2ac 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Tool/PackageWorkman.php +++ b/lib/php/libsdk/SDK/Build/PGO/Tool/PackageWorkman.php @@ -10,6 +10,7 @@ class PackageWorkman { use FileOps; + /** @var PGOConfig */ protected $conf; public function __construct(PGOConfig $conf) diff --git a/lib/php/libsdk/SDK/Build/PGO/Tool/Training.php b/lib/php/libsdk/SDK/Build/PGO/Tool/Training.php index 5dd5311..68026dc 100644 --- a/lib/php/libsdk/SDK/Build/PGO/Tool/Training.php +++ b/lib/php/libsdk/SDK/Build/PGO/Tool/Training.php @@ -8,7 +8,10 @@ class Training { + /** @var PGOConfig */ protected $conf; + + /** @var TrainingCase */ protected $t_case; public function __construct(PGOConfig $conf, TrainingCase $t_case) @@ -27,6 +30,7 @@ public function getCase() : TrainingCase return $this->t_case; } + /** @param array $stat */ public function runWeb(int $max_runs, ?array &$stat = array()) : void { $url_list_fn = $this->t_case->getJobFilename(); @@ -105,6 +109,7 @@ public function runWeb(int $max_runs, ?array &$stat = array()) : void } /* TODO Extend with number runs. */ + /** @param array $stat */ public function run(int $max_runs = 1, ?array &$stat = array()) : void { $type = $this->t_case->getType(); diff --git a/lib/php/libsdk/SDK/Build/PGO/TrainingCaseIterator.php b/lib/php/libsdk/SDK/Build/PGO/TrainingCaseIterator.php index df186f3..f335b24 100644 --- a/lib/php/libsdk/SDK/Build/PGO/TrainingCaseIterator.php +++ b/lib/php/libsdk/SDK/Build/PGO/TrainingCaseIterator.php @@ -4,12 +4,21 @@ use SDK\Build\PGO\Config as PGOConfig; - +/** + * @implements \Iterator + */ class TrainingCaseIterator implements \Iterator { + /** @var PGOConfig */ protected $conf; + + /** @var array */ protected $items = array(); + + /** @var int */ protected $idx; + + /** @var object */ protected $el; public function __construct(PGOConfig $conf) @@ -50,6 +59,7 @@ protected function getHandlerFilename(string $base) : string return $base . DIRECTORY_SEPARATOR . "TrainingCaseHandler.php"; } + #[\ReturnTypeWillChange] public function current() { $base = $this->items[$this->idx]; @@ -73,21 +83,25 @@ public function current() return $this->el; } + #[\ReturnTypeWillChange] public function next() { $this->idx++; } + #[\ReturnTypeWillChange] public function rewind() { $this->idx = 0; } + #[\ReturnTypeWillChange] public function valid() { return $this->idx < count($this->items); } + #[\ReturnTypeWillChange] public function key() { if (!is_object($this->el)) { diff --git a/lib/php/libsdk/SDK/Cache.php b/lib/php/libsdk/SDK/Cache.php index 7bda28c..4b3f429 100644 --- a/lib/php/libsdk/SDK/Cache.php +++ b/lib/php/libsdk/SDK/Cache.php @@ -4,7 +4,10 @@ class Cache { + /** @var string */ protected $id; + + /** @var string */ protected $hash; public function __construct(string $id) @@ -79,7 +82,7 @@ public function getCachedContent(string $path, bool $relative = false) : ?string {/*{{{*/ $p = $this->getCacheablePath($path, $relative); - if ($this->isFileCached($p)) { + if (file_exists($p)) { return file_get_contents($p); } diff --git a/lib/php/libsdk/SDK/Config.php b/lib/php/libsdk/SDK/Config.php index 89f3d8d..d6ccf8b 100644 --- a/lib/php/libsdk/SDK/Config.php +++ b/lib/php/libsdk/SDK/Config.php @@ -7,20 +7,40 @@ class Config { /* Config variables. */ + + /** @var string */ protected static $depsHost = 'downloads.php.net'; + + /** @var int */ protected static $depsPort = 443; + + /** @var string */ protected static $depsUriScheme = "https"; + + /** @var string */ protected static $depsBaseUri = "/~windows/php-sdk/deps"; - /* protected static $sdkNugetFeedUrl = "http://127.0.0.1/sdk/nuget"; */ + /** @var string */ + protected static $sdkNugetFeedUrl = "http://127.0.0.1/sdk/nuget"; // experimental? + /** @var array */ protected static $knownBranches = array (); /* Helper props and methods. */ + + /** @var ?string */ protected static $currentBranchName = NULL; + + /** @var ?string */ protected static $currentArchName = NULL; + + /** @var ?string */ protected static $currentCrtName = NULL; + + /** @var ?string */ protected static $currentStabilityName = NULL; + + /** @var ?string */ protected static $depsLocalPath = NULL; public static function getDepsHost() : string @@ -28,7 +48,7 @@ public static function getDepsHost() : string return self::$depsHost; }/*}}}*/ - public static function getDepsPort() : string + public static function getDepsPort() : int {/*{{{*/ return self::$depsPort; }/*}}}*/ @@ -134,6 +154,7 @@ public static function getCurrentStabilityName() : ?string return self::$currentStabilityName; } /*}}}*/ + /** @return array */ public static function getKnownBranches() : array {/*{{{*/ if (empty(self::$knownBranches)) { @@ -146,7 +167,7 @@ public static function getKnownBranches() : array $fetcher = new Fetcher(self::$depsHost, self::$depsPort, self::$depsUriScheme); $tmp = $fetcher->getByUri(self::$depsBaseUri . "/series/"); - if (false !== $tmp) { + if ("" !== $tmp) { $data = array(); if (preg_match_all(",packages-(.+)-(v[cs]\d+)-(x86|x64|arm64)-(stable|staging)\.txt,Us", $tmp, $m, PREG_SET_ORDER)) { foreach ($m as $b) { @@ -197,7 +218,7 @@ public static function guessCurrentBranchName() : ?string } /* Try to figure out the branch. The worky scenarios are - - CWD is in php-src + - CWD is in php-src - phpize is on the path FIXME for the dev package, there should be a php-config utility */ @@ -235,7 +256,7 @@ public static function guessCurrentBranchName() : ?string $cmd = "\"$git\" branch"; $ret = trim(shell_exec($cmd)); - if (preg_match_all(",\*\s+master,", $ret) > 0) { + if (preg_match_all(",\*\s+master,", $ret) > 0) { $branch = "master"; } } @@ -250,10 +271,11 @@ public static function getCurrentBranchName() : string $branch = self::guessCurrentBranchName(); self::setCurrentBranchName($branch); } - + return self::$currentBranchName; }/*}}}*/ + /** @return array */ public static function getCurrentBranchData() : array {/*{{{*/ $ret = array(); @@ -264,6 +286,7 @@ public static function getCurrentBranchData() : array throw new Exception("Unknown branch '$current_branch_name'"); } + $crt = null; $cur_crt = Config::getCurrentCrtName(); if (count($branches[$current_branch_name]) > 1) { if (NULL === $cur_crt) { @@ -313,7 +336,7 @@ public static function getCurrentBranchData() : array throw new Exception("Failed to find config with arch '" . self::getCurrentArchName() . "'"); } - return $ret; + return $ret; }/*}}}*/ public static function getSdkNugetFeedUrl() : string @@ -345,7 +368,7 @@ public static function getSdkVersion() : string throw new Exception("Couldn't find the SDK version file."); } - return file_get_contents($path); + return trim(file_get_contents($path)); }/*}}}*/ public static function getDepsLocalPath() : ?string @@ -368,7 +391,7 @@ public static function getDepsLocalPath() : ?string self::setDepsLocalPath($tmp); } } - + if (NULL == self::$depsLocalPath) { $tmp = realpath("../deps"); if (is_dir($tmp)) { diff --git a/lib/php/libsdk/SDK/FileOps.php b/lib/php/libsdk/SDK/FileOps.php index c31e437..b4577a4 100644 --- a/lib/php/libsdk/SDK/FileOps.php +++ b/lib/php/libsdk/SDK/FileOps.php @@ -90,6 +90,7 @@ protected function cp_or_mv(string $src, string $dst, callable $cb) : bool if ($item->isFile()) { if (!call_user_func($cb, $src_path, $dst_path)) { + assert(is_string($cb)); throw new Exception("Unable to $cb '$src_path' to '$dst_path'"); } } diff --git a/lib/php/libsdk/SDK/Lock.php b/lib/php/libsdk/SDK/Lock.php index bdcef62..cc4a2a8 100644 --- a/lib/php/libsdk/SDK/Lock.php +++ b/lib/php/libsdk/SDK/Lock.php @@ -4,10 +4,19 @@ class Lock { + /** @var ?resource */ protected $fd; + + /** @var string */ protected $fn; + + /** @var bool */ protected $locked = false; + + /** @var bool|int */ protected $wouldBlock = false; + + /** @var bool|int */ protected $shared = false; public function __construct(string $tag, bool $auto = true, bool $autoShared = false) diff --git a/msys2/usr/bin/awk.exe b/msys2/usr/bin/awk.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/bison.exe b/msys2/usr/bin/bison.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/bsdtar.exe b/msys2/usr/bin/bsdtar.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/bzip2.exe b/msys2/usr/bin/bzip2.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/diff.exe b/msys2/usr/bin/diff.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/diff3.exe b/msys2/usr/bin/diff3.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/gawk.exe b/msys2/usr/bin/gawk.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/grep.exe b/msys2/usr/bin/grep.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/gzip.exe b/msys2/usr/bin/gzip.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/m4.exe b/msys2/usr/bin/m4.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/md5sum.exe b/msys2/usr/bin/md5sum.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/patch.exe b/msys2/usr/bin/patch.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/pwgen.exe b/msys2/usr/bin/pwgen.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/re2c.exe b/msys2/usr/bin/re2c.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/sed.exe b/msys2/usr/bin/sed.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/sha1sum.exe b/msys2/usr/bin/sha1sum.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/sha224sum.exe b/msys2/usr/bin/sha224sum.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/sha256sum.exe b/msys2/usr/bin/sha256sum.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/sha384sum.exe b/msys2/usr/bin/sha384sum.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/sha512sum.exe b/msys2/usr/bin/sha512sum.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/tar.exe b/msys2/usr/bin/tar.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/tee.exe b/msys2/usr/bin/tee.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/unzip.exe b/msys2/usr/bin/unzip.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/unzipsfx.exe b/msys2/usr/bin/unzipsfx.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/wget.exe b/msys2/usr/bin/wget.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/xz.exe b/msys2/usr/bin/xz.exe old mode 100644 new mode 100755 diff --git a/msys2/usr/bin/zip.exe b/msys2/usr/bin/zip.exe old mode 100644 new mode 100755 diff --git a/pgo/cases/drupal/TrainingCaseHandler.php b/pgo/cases/drupal/TrainingCaseHandler.php index 2c50c87..d5d5fda 100644 --- a/pgo/cases/drupal/TrainingCaseHandler.php +++ b/pgo/cases/drupal/TrainingCaseHandler.php @@ -11,9 +11,16 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var mixed */ protected $php; + + /** @var int */ protected $max_runs = 8; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $maria) @@ -65,6 +72,7 @@ protected function setupDist() : void $this->nginx->addServer($tpl_fn, $vars); } + /** @return void */ public function setupUrls() { $this->nginx->up(); diff --git a/pgo/cases/joomla/TrainingCaseHandler.php b/pgo/cases/joomla/TrainingCaseHandler.php index b199fde..cbda00e 100644 --- a/pgo/cases/joomla/TrainingCaseHandler.php +++ b/pgo/cases/joomla/TrainingCaseHandler.php @@ -11,10 +11,19 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var mixed */ protected $php; + + /** @var ?Interfaces\Server\DB */ protected $maria; + + /** @var int */ protected $max_runs = 4; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $maria) @@ -99,6 +108,7 @@ protected function setupDist() : void $this->maria->down(true); } + /** @return void */ public function setupUrls() { $this->maria->up(); diff --git a/pgo/cases/mediawiki/TrainingCaseHandler.php b/pgo/cases/mediawiki/TrainingCaseHandler.php index eca3783..375b4d7 100644 --- a/pgo/cases/mediawiki/TrainingCaseHandler.php +++ b/pgo/cases/mediawiki/TrainingCaseHandler.php @@ -11,9 +11,16 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var mixed */ protected $php; + + /** @var int */ protected $max_runs = 4; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $srv_db) @@ -82,6 +89,7 @@ protected function setupDist() : void $php->exec($cmd); } + /** @return void */ public function setupUrls() { $this->nginx->up(); diff --git a/pgo/cases/pgo01org/TrainingCaseHandler.php b/pgo/cases/pgo01org/TrainingCaseHandler.php index 25656a3..b4372d0 100644 --- a/pgo/cases/pgo01org/TrainingCaseHandler.php +++ b/pgo/cases/pgo01org/TrainingCaseHandler.php @@ -11,10 +11,19 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var ?Interfaces\Server\DB */ protected $maria; + + /** @var mixed */ protected $php; + + /** @var int */ protected $max_runs = 12; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $maria) @@ -119,6 +128,7 @@ protected function setupDist() : void } + /** @return void */ public function setupUrls() { $url = "http://" . $this->getHttpHost() . ":" . $this->getHttpPort(); diff --git a/pgo/cases/symfony_demo/TrainingCaseHandler.php b/pgo/cases/symfony_demo/TrainingCaseHandler.php index e8d0a61..9259378 100644 --- a/pgo/cases/symfony_demo/TrainingCaseHandler.php +++ b/pgo/cases/symfony_demo/TrainingCaseHandler.php @@ -11,9 +11,16 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var mixed */ protected $php; + + /** @var int */ protected $max_runs = 4; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $srv_db) @@ -61,6 +68,7 @@ protected function setupDist() : void $this->nginx->addServer($tpl_fn, $vars); } + /** @return void */ public function setupUrls() { $this->nginx->up(); diff --git a/pgo/cases/symfony_demo_pdo_mysql/TrainingCaseHandler.php b/pgo/cases/symfony_demo_pdo_mysql/TrainingCaseHandler.php index 6835af9..f0d8bee 100644 --- a/pgo/cases/symfony_demo_pdo_mysql/TrainingCaseHandler.php +++ b/pgo/cases/symfony_demo_pdo_mysql/TrainingCaseHandler.php @@ -11,10 +11,19 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var ?Interfaces\Server\DB */ protected $maria; + + /** @var mixed */ protected $php; + + /** @var int */ protected $max_runs = 4; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $srv_db) @@ -80,6 +89,7 @@ protected function setupDist() : void $this->nginx->addServer($tpl_fn, $vars); } + /** @return void */ public function setupUrls() { $this->maria->up(); diff --git a/pgo/cases/wordpress/TrainingCaseHandler.php b/pgo/cases/wordpress/TrainingCaseHandler.php index b8b1c3d..f15fc3e 100644 --- a/pgo/cases/wordpress/TrainingCaseHandler.php +++ b/pgo/cases/wordpress/TrainingCaseHandler.php @@ -11,10 +11,19 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\TrainingCase { + /** @var string */ protected $base; + + /** @var ?Interfaces\Server $nginx */ protected $nginx; + + /** @var ?Interfaces\Server\DB */ protected $maria; + + /** @var mixed */ protected $php; + + /** @var int */ protected $max_runs = 4; public function __construct(Config $conf, ?Interfaces\Server $nginx, ?Interfaces\Server\DB $maria) @@ -106,6 +115,7 @@ protected function setupDist() : void } + /** @return void */ public function setupUrls() { $this->maria->up(); diff --git a/pgo/tpl/nginx/phpsdk_pgo.json b/pgo/tpl/nginx/phpsdk_pgo.json index c5e1882..38f60e6 100644 --- a/pgo/tpl/nginx/phpsdk_pgo.json +++ b/pgo/tpl/nginx/phpsdk_pgo.json @@ -1,5 +1,5 @@ { - "pkg_url": "https://nginx.org/download/nginx-1.17.6.zip", + "pkg_url": "https://nginx.org/download/nginx-1.26.2.zip", "host": "127.0.0.1", "port": 8081 } diff --git a/pgo/tpl/php/php-8.2-pgo-nts-cache.ini b/pgo/tpl/php/php-8.2-pgo-nts-cache.ini index daee4e7..fb06214 100644 --- a/pgo/tpl/php/php-8.2-pgo-nts-cache.ini +++ b/pgo/tpl/php/php-8.2-pgo-nts-cache.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll zend_extension=php_opcache.dll opcache.memory_consumption=PHP_SDK_PGO_PHP_OPCACHE_MEMORY_CONSUMPTION diff --git a/pgo/tpl/php/php-8.2-pgo-nts.ini b/pgo/tpl/php/php-8.2-pgo-nts.ini index da4c0fd..c4354e6 100644 --- a/pgo/tpl/php/php-8.2-pgo-nts.ini +++ b/pgo/tpl/php/php-8.2-pgo-nts.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; diff --git a/pgo/tpl/php/php-8.2-pgo-ts-cache.ini b/pgo/tpl/php/php-8.2-pgo-ts-cache.ini index daee4e7..fb06214 100644 --- a/pgo/tpl/php/php-8.2-pgo-ts-cache.ini +++ b/pgo/tpl/php/php-8.2-pgo-ts-cache.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll zend_extension=php_opcache.dll opcache.memory_consumption=PHP_SDK_PGO_PHP_OPCACHE_MEMORY_CONSUMPTION diff --git a/pgo/tpl/php/php-8.2-pgo-ts.ini b/pgo/tpl/php/php-8.2-pgo-ts.ini index da4c0fd..c4354e6 100644 --- a/pgo/tpl/php/php-8.2-pgo-ts.ini +++ b/pgo/tpl/php/php-8.2-pgo-ts.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; diff --git a/pgo/tpl/php/php-8.3-pgo-nts-cache.ini b/pgo/tpl/php/php-8.3-pgo-nts-cache.ini index daee4e7..fb06214 100644 --- a/pgo/tpl/php/php-8.3-pgo-nts-cache.ini +++ b/pgo/tpl/php/php-8.3-pgo-nts-cache.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll zend_extension=php_opcache.dll opcache.memory_consumption=PHP_SDK_PGO_PHP_OPCACHE_MEMORY_CONSUMPTION diff --git a/pgo/tpl/php/php-8.3-pgo-nts.ini b/pgo/tpl/php/php-8.3-pgo-nts.ini index da4c0fd..c4354e6 100644 --- a/pgo/tpl/php/php-8.3-pgo-nts.ini +++ b/pgo/tpl/php/php-8.3-pgo-nts.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; diff --git a/pgo/tpl/php/php-8.3-pgo-ts-cache.ini b/pgo/tpl/php/php-8.3-pgo-ts-cache.ini index daee4e7..fb06214 100644 --- a/pgo/tpl/php/php-8.3-pgo-ts-cache.ini +++ b/pgo/tpl/php/php-8.3-pgo-ts-cache.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll zend_extension=php_opcache.dll opcache.memory_consumption=PHP_SDK_PGO_PHP_OPCACHE_MEMORY_CONSUMPTION diff --git a/pgo/tpl/php/php-8.3-pgo-ts.ini b/pgo/tpl/php/php-8.3-pgo-ts.ini index da4c0fd..c4354e6 100644 --- a/pgo/tpl/php/php-8.3-pgo-ts.ini +++ b/pgo/tpl/php/php-8.3-pgo-ts.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; diff --git a/pgo/tpl/php/php-8.4-pgo-nts-cache.ini b/pgo/tpl/php/php-8.4-pgo-nts-cache.ini index daee4e7..fb06214 100644 --- a/pgo/tpl/php/php-8.4-pgo-nts-cache.ini +++ b/pgo/tpl/php/php-8.4-pgo-nts-cache.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll zend_extension=php_opcache.dll opcache.memory_consumption=PHP_SDK_PGO_PHP_OPCACHE_MEMORY_CONSUMPTION diff --git a/pgo/tpl/php/php-8.4-pgo-nts.ini b/pgo/tpl/php/php-8.4-pgo-nts.ini index da4c0fd..c4354e6 100644 --- a/pgo/tpl/php/php-8.4-pgo-nts.ini +++ b/pgo/tpl/php/php-8.4-pgo-nts.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; diff --git a/pgo/tpl/php/php-8.4-pgo-ts-cache.ini b/pgo/tpl/php/php-8.4-pgo-ts-cache.ini index daee4e7..fb06214 100644 --- a/pgo/tpl/php/php-8.4-pgo-ts-cache.ini +++ b/pgo/tpl/php/php-8.4-pgo-ts-cache.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll zend_extension=php_opcache.dll opcache.memory_consumption=PHP_SDK_PGO_PHP_OPCACHE_MEMORY_CONSUMPTION diff --git a/pgo/tpl/php/php-8.4-pgo-ts.ini b/pgo/tpl/php/php-8.4-pgo-ts.ini index da4c0fd..c4354e6 100644 --- a/pgo/tpl/php/php-8.4-pgo-ts.ini +++ b/pgo/tpl/php/php-8.4-pgo-ts.ini @@ -981,7 +981,7 @@ extension=php_sqlite3.dll ;extension=php_tidy.dll ;extension=php_xmlrpc.dll ;extension=php_xsl.dll -;extension=php_zip.dll +extension=php_zip.dll ;;;;;;;;;;;;;;;;;;; ; Module Settings ; diff --git a/phpsdk-vc14-x64.bat b/phpsdk-vc14-x64.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vc14-x86.bat b/phpsdk-vc14-x86.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vc15-x64.bat b/phpsdk-vc15-x64.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vc15-x86.bat b/phpsdk-vc15-x86.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vs16-x64.bat b/phpsdk-vs16-x64.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vs16-x86.bat b/phpsdk-vs16-x86.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vs17-x64.bat b/phpsdk-vs17-x64.bat old mode 100644 new mode 100755 diff --git a/phpsdk-vs17-x86.bat b/phpsdk-vs17-x86.bat old mode 100644 new mode 100755