From 8104ff7236cb544c77bf2076cb7195eab901cbae Mon Sep 17 00:00:00 2001 From: DubbleClick Date: Mon, 25 Aug 2025 12:08:53 +0700 Subject: [PATCH] update checks for shared swoole-hook extensions --- config/ext.json | 9 ++++++--- src/SPC/builder/extension/swoole.php | 4 ++-- src/SPC/builder/extension/swoole_hook_mysql.php | 11 +++++++++++ src/SPC/builder/extension/swoole_hook_pgsql.php | 11 +++++++++++ src/SPC/builder/extension/swoole_hook_sqlite.php | 11 +++++++++++ src/SPC/command/BuildPHPCommand.php | 2 +- 6 files changed, 42 insertions(+), 6 deletions(-) diff --git a/config/ext.json b/config/ext.json index 87097c4b..3783d3bf 100644 --- a/config/ext.json +++ b/config/ext.json @@ -863,7 +863,8 @@ "ext-depends": [ "mysqlnd", "pdo", - "pdo_mysql" + "pdo_mysql", + "swoole" ], "ext-suggests": [ "mysqli" @@ -880,7 +881,8 @@ "arg-type": "custom", "ext-depends": [ "pgsql", - "pdo" + "pdo", + "swoole" ] }, "swoole-hook-sqlite": { @@ -893,7 +895,8 @@ "arg-type": "custom", "ext-depends": [ "sqlite3", - "pdo" + "pdo", + "swoole" ] }, "swow": { diff --git a/src/SPC/builder/extension/swoole.php b/src/SPC/builder/extension/swoole.php index 00085e8b..3ae02ff9 100644 --- a/src/SPC/builder/extension/swoole.php +++ b/src/SPC/builder/extension/swoole.php @@ -61,11 +61,11 @@ class swoole extends Extension // additional feature: swoole-pgsql, it should depend on lib [postgresql], but it will lack of CFLAGS etc. // so this is a tricky way (enable ext [pgsql,pdo] to add postgresql hook and pdo_pgsql support) - $arg .= $this->builder->getExt('swoole-hook-pgsql') ? '' : ' --disable-swoole-pgsql'; + $arg .= $this->builder->getExt('swoole-hook-pgsql') ? ' --enable-swoole-pgsql' : ' --disable-swoole-pgsql'; // enable this feature , need remove pdo_sqlite // more info : https://wenda.swoole.com/detail/109023 - $arg .= $this->builder->getExt('swoole-hook-sqlite') ? '' : ' --disable-swoole-sqlite'; + $arg .= $this->builder->getExt('swoole-hook-sqlite') ? ' --enable-swoole-sqlite' : ' --disable-swoole-sqlite'; // enable this feature , need stop pdo_* // $arg .= $this->builder->getLib('unixodbc') ? ' --with-swoole-odbc=unixODBC,' : ' '; diff --git a/src/SPC/builder/extension/swoole_hook_mysql.php b/src/SPC/builder/extension/swoole_hook_mysql.php index cde73955..ee942142 100644 --- a/src/SPC/builder/extension/swoole_hook_mysql.php +++ b/src/SPC/builder/extension/swoole_hook_mysql.php @@ -38,4 +38,15 @@ class swoole_hook_mysql extends Extension throw new ValidationException('swoole mysql hook is not enabled correctly.', validation_module: 'Extension swoole mysql hook availability check'); } } + + public function getSharedExtensionLoadString(): string + { + $ret = parent::getSharedExtensionLoadString(); + return str_replace(' -d "extension=' . $this->name . '"', '', $ret); + } + + public function buildShared(): void + { + // nothing to do, it's built into swoole + } } diff --git a/src/SPC/builder/extension/swoole_hook_pgsql.php b/src/SPC/builder/extension/swoole_hook_pgsql.php index 15b2e1d8..15a6dda5 100644 --- a/src/SPC/builder/extension/swoole_hook_pgsql.php +++ b/src/SPC/builder/extension/swoole_hook_pgsql.php @@ -53,4 +53,15 @@ class swoole_hook_pgsql extends Extension ); } } + + public function getSharedExtensionLoadString(): string + { + $ret = parent::getSharedExtensionLoadString(); + return str_replace(' -d "extension=' . $this->name . '"', '', $ret); + } + + public function buildShared(): void + { + // nothing to do, it's built into swoole + } } diff --git a/src/SPC/builder/extension/swoole_hook_sqlite.php b/src/SPC/builder/extension/swoole_hook_sqlite.php index a8903a82..a5fcc3b4 100644 --- a/src/SPC/builder/extension/swoole_hook_sqlite.php +++ b/src/SPC/builder/extension/swoole_hook_sqlite.php @@ -47,4 +47,15 @@ class swoole_hook_sqlite extends Extension throw new ValidationException('swoole sqlite hook is not enabled correctly.', validation_module: 'Extension swoole sqlite hook availability check'); } } + + public function getSharedExtensionLoadString(): string + { + $ret = parent::getSharedExtensionLoadString(); + return str_replace(' -d "extension=' . $this->name . '"', '', $ret); + } + + public function buildShared(): void + { + // nothing to do, it's built into swoole + } } diff --git a/src/SPC/command/BuildPHPCommand.php b/src/SPC/command/BuildPHPCommand.php index aaf902ba..4f07d5ea 100644 --- a/src/SPC/command/BuildPHPCommand.php +++ b/src/SPC/command/BuildPHPCommand.php @@ -252,7 +252,7 @@ class BuildPHPCommand extends BuildCommand $path = FileSystem::convertPath("{$build_root_path}/modules/{$ext}.so"); if (file_exists(BUILD_MODULES_PATH . "/{$ext}.so")) { logger()->info("Shared extension [{$ext}] path{$fixed}: {$path}"); - } else { + } elseif (!str_contains($ext, 'swoole-hook')) { logger()->warning("Shared extension [{$ext}] not found, please check!"); } }