chore(psr4): phase 3 (Core hubs) — namespace Core/Http

Move Core/Http into XcVm\Core\Http (ApiClient, CurlClient, RequestManager,
Request, Response, Router) and Core/Http/Pipeline into XcVm\Core\Http\Pipeline
(StreamContext, StreamMiddlewareInterface, StreamPipeline). RequestGuard.php is
procedural (global functions) and stays global.

- Namespace the 9 classes; qualify still-global deps with leading backslash
  (\ServerRepository in ApiClient; \Authorization, \ServiceContainer,
  \AdminHelpers in Router) and built-in \Throwable; same-namespace siblings
  unqualified.
- Add 'use XcVm\Core\Http\...;' to referencing files — RequestManager 128,
  Router 19, ApiClient 15, Request 11, Response 6, CurlClient 5, plus Pipeline —
  across src/ and tests/.
- Rewrite the modules' 'use Router;' → 'use XcVm\Core\Http\Router;' (plex,
  watch, tmdb).
- Fix pre-existing leading-backslash global refs (\Router etc.) to the FQCN.
- Tests: fully-qualify the Router type hint in generated module fixtures
  (registerRoutes(\XcVm\Core\Http\Router ...)) and update the
  InterfaceContractTest param-type expectation to the FQCN. Also repaired two
  fixtures where the use-inserter mis-placed a 'use' (files declare a method
  literally named namespace(), which the tokenizer reports as T_NAMESPACE).
- phpstan-baseline.neon regenerated (292→292; class names in frozen messages
  gained the namespace, no new/unknown-class errors).

Verified: php -l clean; PHPStan no errors; PHPUnit 295/295; Http classes resolve
via Composer; leading-backslash re-sweep across migrated classes is clean.
This commit is contained in:
Divarion-D
2026-06-24 21:32:10 +03:00
parent 822e46af05
commit 14202afd64
186 changed files with 235 additions and 27 deletions
+3 -2
View File
@@ -1,5 +1,6 @@
<?php
use XcVm\Core\Http\Router;
use PHPUnit\Framework\TestCase;
// Shared tracker — loaded by PHPUnit before any module PHP file is require_once'd by ModuleLoader.
@@ -222,14 +223,14 @@ final class ModuleLoaderBootTest extends TestCase {
. "namespace {$ns};\n"
. "use ModuleInterface;\n"
. "use ServiceContainer;\n"
. "use Router;\n"
. "use XcVm\\Core\\Http\\Router;\n"
. "use CommandRegistry;\n"
. "use NavbarRegistry;\n"
. "class {$cls} implements ModuleInterface {\n"
. "\tpublic function getName(): string { return '{$name}'; }\n"
. "\tpublic function getVersion(): string { return '1.0.0'; }\n"
. "\tpublic function boot(ServiceContainer \$container): void { {$boot} }\n"
. "\tpublic function registerRoutes(Router \$router): void { {$routes} }\n"
. "\tpublic function registerRoutes(\\XcVm\\Core\\Http\\Router \$router): void { {$routes} }\n"
. "\tpublic function registerCommands(CommandRegistry \$registry): void {}\n"
. "\tpublic function getEventSubscribers(): array { {$subscriberReturn} }\n"
. "\tpublic function install(): void {}\n"