Public Access
feat(core): add SourceResolver for backwards-compatible src/ → source/ migration
Introduces SourceResolver utility class with source/ → src/ → htdocs/ fallback chain, replacing hardcoded src/ references across 28 files. This enables renaming root-level src/ to source/ in all repos while maintaining backwards compatibility during the transition. Phase 1: New lib/Enterprise/SourceResolver.php with resolve(), resolveAbsolute(), globSource(), findUnderSource(), warnIfLegacy() Phase 2: Updated 19 CLI/deploy tools to use SourceResolver Phase 3: Updated 7 validator/lib files (McpServerPlugin, PackageBuilder, RepositorySynchronizer, auto_detect_platform, check_dolibarr_module, check_client_theme, check_structure) Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -31,7 +31,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
require_once __DIR__ . '/../lib/Enterprise/CliFramework.php';
|
||||
|
||||
use MokoEnterprise\CliFramework;
|
||||
use MokoEnterprise\{CliFramework, SourceResolver};
|
||||
use phpseclib3\Net\SFTP;
|
||||
use phpseclib3\Crypt\PublicKeyLoader;
|
||||
|
||||
@@ -866,11 +866,11 @@ class DeployJoomla extends CliFramework
|
||||
}
|
||||
}
|
||||
|
||||
// 3-5. Fallback chain
|
||||
foreach (['src', 'htdocs'] as $candidate) {
|
||||
if (is_dir("{$repoPath}/{$candidate}")) {
|
||||
return "{$repoPath}/{$candidate}";
|
||||
}
|
||||
// 3-5. Fallback chain (source/ → src/ → htdocs/)
|
||||
$resolved = SourceResolver::resolveAbsolute($repoPath);
|
||||
if ($resolved !== null) {
|
||||
SourceResolver::warnIfLegacy($repoPath);
|
||||
return $resolved;
|
||||
}
|
||||
|
||||
// Last resort: repo root itself
|
||||
|
||||
Reference in New Issue
Block a user