mirror of
https://github.com/php-win-ext/php-sdk-binary-tools.git
synced 2026-03-24 09:02:12 +01:00
Compare commits
1 Commits
php-sdk-2.
...
pgo_84_ini
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ff0577ff7 |
22
README.md
22
README.md
@@ -206,25 +206,3 @@ 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
|
||||
|
||||
0
bin/7za.exe
Executable file → Normal file
0
bin/7za.exe
Executable file → Normal file
0
bin/deplister.exe
Executable file → Normal file
0
bin/deplister.exe
Executable file → Normal file
0
bin/jq.exe
Executable file → Normal file
0
bin/jq.exe
Executable file → Normal file
0
bin/lemon.exe
Executable file → Normal file
0
bin/lemon.exe
Executable file → Normal file
0
bin/php/do_php.bat
Executable file → Normal file
0
bin/php/do_php.bat
Executable file → Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/php/libcrypto-1_1-x64.dll
Normal file
BIN
bin/php/libcrypto-1_1-x64.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/php/libssl-1_1-x64.dll
Normal file
BIN
bin/php/libssl-1_1-x64.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bin/php/php.exe
Executable file → Normal file
BIN
bin/php/php.exe
Executable file → Normal file
Binary file not shown.
@@ -5,7 +5,6 @@ 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
|
||||
|
||||
BIN
bin/php/php8.dll
BIN
bin/php/php8.dll
Binary file not shown.
0
bin/phpsdk_buildtree.bat
Executable file → Normal file
0
bin/phpsdk_buildtree.bat
Executable file → Normal file
0
bin/phpsdk_deps.bat
Executable file → Normal file
0
bin/phpsdk_deps.bat
Executable file → Normal file
0
bin/phpsdk_dllmap.bat
Executable file → Normal file
0
bin/phpsdk_dllmap.bat
Executable file → Normal file
@@ -65,7 +65,7 @@ foreach ($dirs as $path) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!preg_match(",.*-(v[c|s]\d+)-(x\d\d)\.zip,", $filename, $m)) {
|
||||
if (!preg_match(",.*-(vc\d+)-(x\d\d)\.zip,", $filename, $m)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
0
bin/phpsdk_dumpenv.bat
Executable file → Normal file
0
bin/phpsdk_dumpenv.bat
Executable file → Normal file
0
bin/phpsdk_pgo.bat
Executable file → Normal file
0
bin/phpsdk_pgo.bat
Executable file → Normal file
0
bin/phpsdk_setshell.bat
Executable file → Normal file
0
bin/phpsdk_setshell.bat
Executable file → Normal file
0
bin/phpsdk_setvars.bat
Executable file → Normal file
0
bin/phpsdk_setvars.bat
Executable file → Normal file
0
bin/phpsdk_version.bat
Executable file → Normal file
0
bin/phpsdk_version.bat
Executable file → Normal file
0
bin/sqlite3.exe
Executable file → Normal file
0
bin/sqlite3.exe
Executable file → Normal file
0
bin/task.exe
Executable file → Normal file
0
bin/task.exe
Executable file → Normal file
BIN
bin/vswhere.exe
Executable file → Normal file
BIN
bin/vswhere.exe
Executable file → Normal file
Binary file not shown.
@@ -8,24 +8,14 @@ class Fetcher
|
||||
{
|
||||
use FileOps;
|
||||
|
||||
/** @var string */
|
||||
protected $host;
|
||||
|
||||
/** @var int */
|
||||
protected $port;
|
||||
|
||||
/** @var ?string */
|
||||
protected $stability;
|
||||
|
||||
/** @var ?string */
|
||||
protected $arch;
|
||||
|
||||
/** @var Series */
|
||||
protected $series;
|
||||
|
||||
/** @var string */
|
||||
protected $scheme;
|
||||
|
||||
|
||||
public function __construct(string $host, int $port, string $scheme = "https", string $arch = NULL, string $stability = NULL, Series $series = NULL)
|
||||
{/*{{{*/
|
||||
$this->stability = $stability;
|
||||
|
||||
@@ -8,25 +8,12 @@ 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)
|
||||
|
||||
@@ -8,16 +8,9 @@ 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)
|
||||
|
||||
@@ -8,19 +8,10 @@ use SDK\Exception;
|
||||
|
||||
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)
|
||||
@@ -68,7 +59,6 @@ class Series
|
||||
return "$base/series/$file";
|
||||
}/*}}}*/
|
||||
|
||||
/** @return array<string>|string */
|
||||
public function getData(bool $raw = false, bool $cache = true)
|
||||
{/*{{{*/
|
||||
if ($cache && $this->rawData) {
|
||||
|
||||
@@ -7,25 +7,13 @@ use SDK\{Config as SDKConfig, Exception};
|
||||
|
||||
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();
|
||||
@@ -42,15 +30,12 @@ abstract class PHP
|
||||
}
|
||||
}
|
||||
|
||||
abstract public function getExeFilename() : string;
|
||||
|
||||
/* TODO Might be improved. */
|
||||
public function isDist() : bool
|
||||
{
|
||||
return !file_exists("Makefile") && file_exists("php.exe");
|
||||
}
|
||||
|
||||
/** @return array<string,string> */
|
||||
protected function createEnv() : array
|
||||
{
|
||||
$env = getenv();
|
||||
@@ -111,7 +96,7 @@ abstract class PHP
|
||||
public function getVersion(bool $short = false) : string
|
||||
{
|
||||
$ret = NULL;
|
||||
$cli = new CLI($this->conf);
|
||||
$cli = new CLI($this->conf, $this->scenario);
|
||||
|
||||
$out = shell_exec($cli->getExeFilename() . " -n -v");
|
||||
|
||||
@@ -134,7 +119,7 @@ abstract class PHP
|
||||
|
||||
public function isThreadSafe() : bool
|
||||
{
|
||||
$cli = new CLI($this->conf);
|
||||
$cli = new CLI($this->conf, $this->scenario);
|
||||
|
||||
$out = shell_exec($cli->getExeFilename() . " -n -v");
|
||||
|
||||
@@ -146,7 +131,6 @@ abstract class PHP
|
||||
}
|
||||
|
||||
/* Need to cleanup it somewhere. */
|
||||
/** @return string */
|
||||
public function getIniFilename()
|
||||
{
|
||||
$ret = tempnam(sys_get_temp_dir(), "ini");
|
||||
@@ -179,7 +163,6 @@ abstract class PHP
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/** @return string */
|
||||
protected function getIniTplFilename()
|
||||
{
|
||||
$tpl_path = $this->conf->getTplDir("php");
|
||||
@@ -195,7 +178,6 @@ abstract class PHP
|
||||
return $construct;
|
||||
}
|
||||
|
||||
/** @param array<string,string> $extra_env */
|
||||
public function exec(string $php_cmd, string $args = NULL, array $extra_env = array()) : int
|
||||
{
|
||||
$env = $this->createEnv();
|
||||
|
||||
@@ -6,12 +6,6 @@ use SDK\Build\PGO\Interfaces;
|
||||
|
||||
abstract class Server
|
||||
{
|
||||
/** @var string */
|
||||
protected $name;
|
||||
|
||||
/** @var Interfaces\PHP */
|
||||
protected $php;
|
||||
|
||||
public function getName() : string
|
||||
{
|
||||
return $this->name;
|
||||
|
||||
@@ -3,27 +3,19 @@
|
||||
namespace SDK\Build\PGO\Abstracts;
|
||||
|
||||
use SDK\FileOps;
|
||||
use SDK\Build\PGO\Interfaces;
|
||||
use SDK\Build\PGO\Tool;
|
||||
|
||||
abstract class TrainingCase implements Interfaces\TrainingCase
|
||||
abstract class TrainingCase
|
||||
{
|
||||
use FileOps;
|
||||
|
||||
const TYPE_WEB = "web";
|
||||
const TYPE_CLI = "cli";
|
||||
|
||||
/** @var array<mixed> */
|
||||
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");
|
||||
|
||||
@@ -11,22 +11,11 @@ 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<string,mixed> */
|
||||
protected $sections = array();
|
||||
|
||||
/** @var string */
|
||||
protected $scenario = "default";
|
||||
|
||||
/** @var array<mixed> */
|
||||
protected $tpl_vars = array();
|
||||
|
||||
/** @var array<mixed> */
|
||||
protected $srv = array();
|
||||
|
||||
public function __construct(int $mode = self::MODE_RUN)
|
||||
@@ -78,7 +67,6 @@ class Config
|
||||
}
|
||||
}
|
||||
|
||||
/** @return bool */
|
||||
public function isInitialized()
|
||||
{
|
||||
/* XXX Could be some better check. */
|
||||
@@ -173,7 +161,6 @@ class Config
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/** @param string ...$args */
|
||||
public function sectionItemExists(...$args) : bool
|
||||
{
|
||||
$i = 0;
|
||||
@@ -191,10 +178,6 @@ class Config
|
||||
return $i == count($args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string ...$args
|
||||
* @return mixed
|
||||
*/
|
||||
public function getSectionItem(...$args)
|
||||
{
|
||||
$i = 0;
|
||||
@@ -216,7 +199,6 @@ class Config
|
||||
return $it;
|
||||
}
|
||||
|
||||
/** @param string|int ...$args */
|
||||
public function setSectionItem(...$args) : void
|
||||
{
|
||||
$val = array_pop($args);
|
||||
@@ -256,7 +238,6 @@ class Config
|
||||
}
|
||||
}
|
||||
|
||||
/** @param string ...$args */
|
||||
public function buildTplVarName(...$args) : string
|
||||
{
|
||||
$tpl_k = array("PHP_SDK_PGO");
|
||||
@@ -268,7 +249,6 @@ class Config
|
||||
return implode("_", $tpl_k);
|
||||
}
|
||||
|
||||
/** @param array<string,mixed> $section */
|
||||
protected function importTplVars(string $section_name, array $section) : void
|
||||
{
|
||||
foreach($section as $k0 => $v0) {
|
||||
@@ -286,7 +266,6 @@ class Config
|
||||
}
|
||||
}
|
||||
|
||||
/** @param array<mixed> $additional_vars */
|
||||
public function processTpl(string $s, array $additional_vars = array()) : string
|
||||
{
|
||||
$vars = array_merge($this->tpl_vars, $additional_vars);
|
||||
@@ -296,7 +275,6 @@ class Config
|
||||
return $s;
|
||||
}
|
||||
|
||||
/** @param array<mixed> $additional_vars */
|
||||
public function processTplFile(string $tpl_fn, string $dst_fn, array $additional_vars = array()) : void
|
||||
{
|
||||
if (!file_exists($tpl_fn)) {
|
||||
@@ -315,7 +293,6 @@ class Config
|
||||
}
|
||||
}
|
||||
|
||||
/** @return string */
|
||||
public function getWorkSectionsFilename()
|
||||
{
|
||||
return $this->getWorkDir() . DIRECTORY_SEPARATOR . "phpsdk_pgo.json";
|
||||
@@ -361,10 +338,6 @@ class Config
|
||||
return getenv("PHP_SDK_PHP_CMD");
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Interfaces\Server $item
|
||||
* @return void
|
||||
*/
|
||||
public function addSrv($item) : void
|
||||
{
|
||||
$name = strtolower($item->getName());
|
||||
@@ -377,7 +350,6 @@ class Config
|
||||
$this->srv[$name] = $item;
|
||||
}
|
||||
|
||||
/** @return array<string,Interfaces\Server>|Interfaces\Server|null */
|
||||
public function getSrv(?string $name = NULL)
|
||||
{
|
||||
$ret = NULL;
|
||||
|
||||
@@ -13,19 +13,11 @@ use SDK\Build\PGO\Tool\{PGO, PackageWorkman};
|
||||
|
||||
class Controller
|
||||
{
|
||||
/** @var string */
|
||||
protected $cmd;
|
||||
|
||||
/** @var ?string */
|
||||
protected $scenario;
|
||||
|
||||
/** @var PGOConfig */
|
||||
protected $conf;
|
||||
|
||||
/** @var array<string>|null */
|
||||
protected $cases;
|
||||
|
||||
/** @param array<string>|null $cases */
|
||||
public function __construct(string $cmd, ?string $scenario, ?array $cases)
|
||||
{
|
||||
$this->cmd = $cmd;
|
||||
@@ -37,7 +29,6 @@ class Controller
|
||||
$this->cases = $cases;
|
||||
}
|
||||
|
||||
/** @return mixed */
|
||||
protected function vitalizeSrv()
|
||||
{
|
||||
$all = $this->conf->getSrv("all");
|
||||
@@ -56,15 +47,12 @@ class Controller
|
||||
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;
|
||||
@@ -81,10 +69,6 @@ class Controller
|
||||
return $cnf;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $force
|
||||
* @return void
|
||||
*/
|
||||
public function handle($force)
|
||||
{
|
||||
/*$mode = (int)("init" !== $this->cmd);
|
||||
@@ -96,6 +80,7 @@ class Controller
|
||||
switch ($this->cmd) {
|
||||
default:
|
||||
throw new Exception("Unknown action '{$this->cmd}'.");
|
||||
break;
|
||||
case "init":
|
||||
$lk = new Lock("pgo_init");
|
||||
if (!$lk->locked()) {
|
||||
@@ -155,6 +140,7 @@ class Controller
|
||||
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());
|
||||
@@ -162,7 +148,6 @@ class Controller
|
||||
}
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function init(bool $force = false)
|
||||
{
|
||||
echo "\nInitializing PGO training environment.\n\n";
|
||||
@@ -196,13 +181,11 @@ class Controller
|
||||
echo "PGO training environment Initialization complete.\n";
|
||||
}
|
||||
|
||||
/** @return bool */
|
||||
public function isInitialized()
|
||||
{
|
||||
return $this->conf->isinitialized();
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function train()
|
||||
{
|
||||
if (!$this->isInitialized()) {
|
||||
@@ -251,7 +234,6 @@ class Controller
|
||||
echo "PGO training complete.\n";
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function up()
|
||||
{
|
||||
|
||||
@@ -260,7 +242,7 @@ class Controller
|
||||
}
|
||||
echo "\nStarting up PGO environment.\n\n";
|
||||
|
||||
foreach ($this->vitalizeSrv() as $srv) {
|
||||
foreach ($this->vitalizeSrv("all") as $srv) {
|
||||
$srv->up();
|
||||
echo "\n";
|
||||
}
|
||||
@@ -270,7 +252,6 @@ class Controller
|
||||
echo "The PGO environment is up.\n";
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function down(bool $force = false)
|
||||
{
|
||||
if (!$this->isInitialized()) {
|
||||
@@ -279,7 +260,7 @@ class Controller
|
||||
/* XXX check it was started of course. */
|
||||
echo "\nShutting down PGO environment.\n\n";
|
||||
|
||||
foreach ($this->vitalizeSrv() as $srv) {
|
||||
foreach ($this->vitalizeSrv("all") as $srv) {
|
||||
$srv->down($force);
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
@@ -12,7 +12,4 @@ interface Server
|
||||
public function up() : void;
|
||||
public function down(bool $force = false) : void;
|
||||
public function getName() : string;
|
||||
|
||||
/** @return \SDK\Build\PGO\Interfaces\PHP */
|
||||
public function getPhp();
|
||||
}
|
||||
|
||||
@@ -9,10 +9,5 @@ interface HTTP extends Interfaces\Server
|
||||
{
|
||||
public function __construct(Config $conf, Interfaces\PHP $php);
|
||||
public function getPhp() : Interfaces\PHP;
|
||||
|
||||
/**
|
||||
* @param array<mixed> $tpl_vars
|
||||
* @return void
|
||||
*/
|
||||
public function addServer(string $part_tpl_fn, array $tpl_vars = array());
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ class FCGI extends Abstracts\PHP implements Interfaces\PHP
|
||||
{
|
||||
use FileOps;
|
||||
|
||||
/** @var bool */
|
||||
protected $is_tcp;
|
||||
|
||||
public function __construct(PGOConfig $conf, bool $is_tcp)
|
||||
|
||||
@@ -12,13 +12,8 @@ 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)
|
||||
@@ -27,7 +22,6 @@ class MariaDB extends Server implements DB
|
||||
$this->base = $conf->getSrvDir(strtolower($this->name));
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
protected function setupDist()
|
||||
{
|
||||
/* pass */
|
||||
|
||||
@@ -12,16 +12,9 @@ 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)
|
||||
@@ -132,10 +125,6 @@ class NGINX extends Abstracts\Server implements Interfaces\Server\HTTP
|
||||
}
|
||||
|
||||
/* Use only for init phase! */
|
||||
/**
|
||||
* @param array<mixed> $tpl_vars
|
||||
* @return void
|
||||
*/
|
||||
public function addServer(string $part_tpl_fn, array $tpl_vars = array())
|
||||
{
|
||||
if (!file_exists($part_tpl_fn)) {
|
||||
|
||||
@@ -12,16 +12,9 @@ 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)
|
||||
@@ -31,7 +24,6 @@ class PostgreSQL extends Server implements DB
|
||||
$this->data_dir = $this->base . DIRECTORY_SEPARATOR . "data";
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
protected function setupDist()
|
||||
{
|
||||
$user = $this->conf->getSectionItem($this->name, "user");
|
||||
|
||||
@@ -8,13 +8,8 @@ use SDK\Build\PGO\Interfaces;
|
||||
|
||||
class PGO
|
||||
{
|
||||
/** @var Interfaces\PHP */
|
||||
protected $php;
|
||||
|
||||
/** @var PGOConfig */
|
||||
protected $conf;
|
||||
|
||||
/** @var int */
|
||||
protected $idx = 0;
|
||||
|
||||
public function __construct(PGOConfig $conf, Interfaces\PHP $php)
|
||||
@@ -39,7 +34,6 @@ class PGO
|
||||
return $dn . DIRECTORY_SEPARATOR . $bn . ".pgd";
|
||||
}
|
||||
|
||||
/** @return array<string> */
|
||||
protected function getWorkItems() : array
|
||||
{
|
||||
$exe = glob($this->php->getRootDir() . DIRECTORY_SEPARATOR . "*.exe");
|
||||
|
||||
@@ -10,7 +10,6 @@ class PackageWorkman
|
||||
{
|
||||
use FileOps;
|
||||
|
||||
/** @var PGOConfig */
|
||||
protected $conf;
|
||||
|
||||
public function __construct(PGOConfig $conf)
|
||||
|
||||
@@ -8,10 +8,7 @@ use SDK\Build\PGO\Interfaces\TrainingCase;
|
||||
|
||||
class Training
|
||||
{
|
||||
/** @var PGOConfig */
|
||||
protected $conf;
|
||||
|
||||
/** @var TrainingCase */
|
||||
protected $t_case;
|
||||
|
||||
public function __construct(PGOConfig $conf, TrainingCase $t_case)
|
||||
@@ -30,7 +27,6 @@ class Training
|
||||
return $this->t_case;
|
||||
}
|
||||
|
||||
/** @param array<string,mixed> $stat */
|
||||
public function runWeb(int $max_runs, ?array &$stat = array()) : void
|
||||
{
|
||||
$url_list_fn = $this->t_case->getJobFilename();
|
||||
@@ -109,7 +105,6 @@ class Training
|
||||
}
|
||||
|
||||
/* TODO Extend with number runs. */
|
||||
/** @param array<string,mixed> $stat */
|
||||
public function run(int $max_runs = 1, ?array &$stat = array()) : void
|
||||
{
|
||||
$type = $this->t_case->getType();
|
||||
|
||||
@@ -4,21 +4,12 @@ namespace SDK\Build\PGO;
|
||||
|
||||
use SDK\Build\PGO\Config as PGOConfig;
|
||||
|
||||
/**
|
||||
* @implements \Iterator<?string,Interfaces\TrainingCase>
|
||||
*/
|
||||
|
||||
class TrainingCaseIterator implements \Iterator
|
||||
{
|
||||
/** @var PGOConfig */
|
||||
protected $conf;
|
||||
|
||||
/** @var array<string> */
|
||||
protected $items = array();
|
||||
|
||||
/** @var int */
|
||||
protected $idx;
|
||||
|
||||
/** @var object */
|
||||
protected $el;
|
||||
|
||||
public function __construct(PGOConfig $conf)
|
||||
@@ -59,7 +50,6 @@ class TrainingCaseIterator implements \Iterator
|
||||
return $base . DIRECTORY_SEPARATOR . "TrainingCaseHandler.php";
|
||||
}
|
||||
|
||||
#[\ReturnTypeWillChange]
|
||||
public function current()
|
||||
{
|
||||
$base = $this->items[$this->idx];
|
||||
@@ -83,25 +73,21 @@ class TrainingCaseIterator implements \Iterator
|
||||
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)) {
|
||||
|
||||
@@ -4,10 +4,7 @@ namespace SDK;
|
||||
|
||||
class Cache
|
||||
{
|
||||
/** @var string */
|
||||
protected $id;
|
||||
|
||||
/** @var string */
|
||||
protected $hash;
|
||||
|
||||
public function __construct(string $id)
|
||||
@@ -82,7 +79,7 @@ class Cache
|
||||
{/*{{{*/
|
||||
$p = $this->getCacheablePath($path, $relative);
|
||||
|
||||
if (file_exists($p)) {
|
||||
if ($this->isFileCached($p)) {
|
||||
return file_get_contents($p);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,40 +7,20 @@ use SDK\Build\Dependency\Fetcher;
|
||||
class Config
|
||||
{
|
||||
/* Config variables. */
|
||||
|
||||
/** @var string */
|
||||
protected static $depsHost = 'phpext.phptools.online';
|
||||
|
||||
/** @var int */
|
||||
protected static $depsHost = 'downloads.php.net';
|
||||
protected static $depsPort = 443;
|
||||
|
||||
/** @var string */
|
||||
protected static $depsUriScheme = "https";
|
||||
protected static $depsBaseUri = "/~windows/php-sdk/deps";
|
||||
|
||||
/** @var string */
|
||||
protected static $depsBaseUri = "/api/downloadable/download";
|
||||
/* 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<mixed> */
|
||||
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
|
||||
@@ -48,7 +28,7 @@ class Config
|
||||
return self::$depsHost;
|
||||
}/*}}}*/
|
||||
|
||||
public static function getDepsPort() : int
|
||||
public static function getDepsPort() : string
|
||||
{/*{{{*/
|
||||
return self::$depsPort;
|
||||
}/*}}}*/
|
||||
@@ -154,7 +134,6 @@ class Config
|
||||
return self::$currentStabilityName;
|
||||
} /*}}}*/
|
||||
|
||||
/** @return array<mixed> */
|
||||
public static function getKnownBranches() : array
|
||||
{/*{{{*/
|
||||
if (empty(self::$knownBranches)) {
|
||||
@@ -167,7 +146,7 @@ class Config
|
||||
$fetcher = new Fetcher(self::$depsHost, self::$depsPort, self::$depsUriScheme);
|
||||
|
||||
$tmp = $fetcher->getByUri(self::$depsBaseUri . "/series/");
|
||||
if ("" !== $tmp) {
|
||||
if (false !== $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) {
|
||||
@@ -275,7 +254,6 @@ class Config
|
||||
return self::$currentBranchName;
|
||||
}/*}}}*/
|
||||
|
||||
/** @return array<mixed> */
|
||||
public static function getCurrentBranchData() : array
|
||||
{/*{{{*/
|
||||
$ret = array();
|
||||
@@ -286,7 +264,6 @@ class Config
|
||||
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) {
|
||||
|
||||
@@ -90,7 +90,6 @@ trait FileOps
|
||||
|
||||
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'");
|
||||
}
|
||||
}
|
||||
@@ -138,11 +137,6 @@ retry:
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, Config::getSdkUserAgentName());
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
|
||||
|
||||
$token = getenv('API_TOKEN');
|
||||
if (!empty($token)) {
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer '.$token]);
|
||||
}
|
||||
|
||||
// workaround for <https://github.com/microsoft/php-sdk-binary-tools/issues/69>
|
||||
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
|
||||
|
||||
|
||||
@@ -4,19 +4,10 @@ namespace SDK;
|
||||
|
||||
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)
|
||||
|
||||
0
msys2/usr/bin/awk.exe
Executable file → Normal file
0
msys2/usr/bin/awk.exe
Executable file → Normal file
0
msys2/usr/bin/bison.exe
Executable file → Normal file
0
msys2/usr/bin/bison.exe
Executable file → Normal file
0
msys2/usr/bin/bsdtar.exe
Executable file → Normal file
0
msys2/usr/bin/bsdtar.exe
Executable file → Normal file
0
msys2/usr/bin/bzip2.exe
Executable file → Normal file
0
msys2/usr/bin/bzip2.exe
Executable file → Normal file
0
msys2/usr/bin/diff.exe
Executable file → Normal file
0
msys2/usr/bin/diff.exe
Executable file → Normal file
0
msys2/usr/bin/diff3.exe
Executable file → Normal file
0
msys2/usr/bin/diff3.exe
Executable file → Normal file
0
msys2/usr/bin/gawk.exe
Executable file → Normal file
0
msys2/usr/bin/gawk.exe
Executable file → Normal file
0
msys2/usr/bin/grep.exe
Executable file → Normal file
0
msys2/usr/bin/grep.exe
Executable file → Normal file
0
msys2/usr/bin/gzip.exe
Executable file → Normal file
0
msys2/usr/bin/gzip.exe
Executable file → Normal file
0
msys2/usr/bin/m4.exe
Executable file → Normal file
0
msys2/usr/bin/m4.exe
Executable file → Normal file
0
msys2/usr/bin/md5sum.exe
Executable file → Normal file
0
msys2/usr/bin/md5sum.exe
Executable file → Normal file
0
msys2/usr/bin/patch.exe
Executable file → Normal file
0
msys2/usr/bin/patch.exe
Executable file → Normal file
0
msys2/usr/bin/pwgen.exe
Executable file → Normal file
0
msys2/usr/bin/pwgen.exe
Executable file → Normal file
0
msys2/usr/bin/re2c.exe
Executable file → Normal file
0
msys2/usr/bin/re2c.exe
Executable file → Normal file
0
msys2/usr/bin/sed.exe
Executable file → Normal file
0
msys2/usr/bin/sed.exe
Executable file → Normal file
0
msys2/usr/bin/sha1sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha1sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha224sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha224sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha256sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha256sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha384sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha384sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha512sum.exe
Executable file → Normal file
0
msys2/usr/bin/sha512sum.exe
Executable file → Normal file
0
msys2/usr/bin/tar.exe
Executable file → Normal file
0
msys2/usr/bin/tar.exe
Executable file → Normal file
0
msys2/usr/bin/tee.exe
Executable file → Normal file
0
msys2/usr/bin/tee.exe
Executable file → Normal file
0
msys2/usr/bin/unzip.exe
Executable file → Normal file
0
msys2/usr/bin/unzip.exe
Executable file → Normal file
0
msys2/usr/bin/unzipsfx.exe
Executable file → Normal file
0
msys2/usr/bin/unzipsfx.exe
Executable file → Normal file
0
msys2/usr/bin/wget.exe
Executable file → Normal file
0
msys2/usr/bin/wget.exe
Executable file → Normal file
0
msys2/usr/bin/xz.exe
Executable file → Normal file
0
msys2/usr/bin/xz.exe
Executable file → Normal file
0
msys2/usr/bin/zip.exe
Executable file → Normal file
0
msys2/usr/bin/zip.exe
Executable file → Normal file
@@ -11,16 +11,9 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -72,7 +65,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
$this->nginx->addServer($tpl_fn, $vars);
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$this->nginx->up();
|
||||
|
||||
@@ -11,19 +11,10 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -108,7 +99,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
$this->maria->down(true);
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$this->maria->up();
|
||||
|
||||
@@ -11,16 +11,9 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -89,7 +82,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
$php->exec($cmd);
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$this->nginx->up();
|
||||
|
||||
@@ -11,19 +11,10 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -128,7 +119,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$url = "http://" . $this->getHttpHost() . ":" . $this->getHttpPort();
|
||||
|
||||
@@ -11,16 +11,9 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -68,7 +61,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
$this->nginx->addServer($tpl_fn, $vars);
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$this->nginx->up();
|
||||
|
||||
@@ -11,19 +11,10 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -89,7 +80,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
$this->nginx->addServer($tpl_fn, $vars);
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$this->maria->up();
|
||||
|
||||
@@ -11,19 +11,10 @@ use SDK\Build\PGO\Tool;
|
||||
|
||||
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)
|
||||
@@ -115,7 +106,6 @@ class TrainingCaseHandler extends Abstracts\TrainingCase implements Interfaces\T
|
||||
|
||||
}
|
||||
|
||||
/** @return void */
|
||||
public function setupUrls()
|
||||
{
|
||||
$this->maria->up();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"pkg_url": "https://nginx.org/download/nginx-1.26.2.zip",
|
||||
"pkg_url": "https://nginx.org/download/nginx-1.17.6.zip",
|
||||
"host": "127.0.0.1",
|
||||
"port": 8081
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user