refactor: auto-discover Extensions/Batch*.php via glob loader (guarded); no per-batch main-file edits

This commit is contained in:
2026-10-15 17:59:35 +00:00
parent 068a12de9f
commit 8ecc07215f
+19 -4
View File
@@ -33,10 +33,25 @@ spl_autoload_register(function (string $class): void {
if (file_exists($file)) require_once $file;
});
// Tool batches merged from the elementor-mcp / wordpress-mcp parity program.
// Each batch registers net-new tools through the asktam_mcp_register_tools hook,
// so core files stay untouched. See includes/Extensions/ and NOTICE.md.
add_action('asktam_mcp_register_tools', ['AskTamMCP\Extensions\Batch1', 'register']);
/**
* Tool-batch loader — part of the elementor-mcp / wordpress-mcp parity program.
* Auto-discovers includes/Extensions/Batch*.php and lets each self-register its
* net-new tools through the asktam_mcp_register_tools hook. Each batch is isolated
* in try/catch so a single faulty batch can never break tool registration.
* Adding a batch = drop a BatchN.php file; no edit to this file is needed.
*/
add_action('asktam_mcp_register_tools', function ($registry): void {
foreach (glob(ASKTAM_MCP_DIR . 'includes/Extensions/Batch*.php') ?: [] as $f) {
$cls = 'AskTamMCP\\Extensions\\' . basename($f, '.php');
if (class_exists($cls) && method_exists($cls, 'register')) {
try {
$cls::register($registry);
} catch (\Throwable $e) {
error_log('[AskTamMCP] batch ' . basename($f) . ' register failed: ' . $e->getMessage());
}
}
}
}, 20);
add_action('plugins_loaded', function (): void {
AskTamMCP\Core\Plugin::instance()->boot();