docs: consolidate documentation into organized structure

- Move 12 markdown files from root to docs/ subdirectories
- Organize documentation by category:
  • docs/troubleshooting/ (1 file)  - Technical troubleshooting guides
  • docs/deployment/      (4 files) - Deployment and security documentation
  • docs/guides/          (3 files) - Feature-specific guides
  • docs/planning/        (4 files) - Planning and improvement proposals

Root directory cleanup:
- Reduced from 16 to 4 markdown files in root
- Only essential project files remain:
  • CLAUDE.md (AI instructions)
  • README.md (Main project readme)
  • CLEANUP_PLAN.md (Current cleanup plan)
  • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements)

This improves:
 Documentation discoverability
 Logical organization by purpose
 Clean root directory
 Better maintainability
This commit is contained in:
2025-10-05 11:05:04 +02:00
parent 887847dde6
commit 5050c7d73a
36686 changed files with 196456 additions and 12398919 deletions

View File

@@ -18,13 +18,16 @@ use App\Framework\View\Processors\CommentStripProcessor;
use App\Framework\View\Processors\ComponentProcessor;
use App\Framework\View\Processors\FormProcessor;
use App\Framework\View\Processors\ForProcessor;
use App\Framework\View\Processors\FrameworkComponentProcessor;
use App\Framework\View\Processors\HoneypotProcessor;
use App\Framework\View\Processors\IfProcessor;
use App\Framework\View\Processors\LayoutTagProcessor;
use App\Framework\View\Processors\MetaManipulator;
use App\Framework\View\Processors\PlaceholderReplacer;
use App\Framework\View\Processors\RemoveEmptyLinesProcessor;
use App\Framework\View\Processors\SingleLineHtmlProcessor;
use App\Framework\View\Processors\VoidElementsSelfClosingProcessor;
use App\Framework\View\Table\TableProcessor;
final readonly class TemplateRendererInitializer
{
@@ -38,11 +41,13 @@ final readonly class TemplateRendererInitializer
public function __invoke(): TemplateRenderer
{
$doms = [
ComponentProcessor::class,
LayoutTagProcessor::class,
IfProcessor::class, // IfProcessor runs early for conditional content
ComponentProcessor::class, // ComponentProcessor runs before layout assembly
FrameworkComponentProcessor::class, // FrameworkComponentProcessor handles <x-*> tags for PHP components
LayoutTagProcessor::class, // Layout processing loads layout templates
TableProcessor::class, // TableProcessor handles <table-data> tags for structured tables
ForProcessor::class, // ForProcessor handles all <for> tags after layout assembly
MetaManipulator::class,
IfProcessor::class,
ForProcessor::class,
AssetInjector::class,
CommentStripProcessor::class,
RemoveEmptyLinesProcessor::class,
@@ -51,13 +56,13 @@ final readonly class TemplateRendererInitializer
];
$strings = [
PlaceholderReplacer::class,
PlaceholderReplacer::class, // PlaceholderReplacer handles simple {{ }} replacements
#SingleLineHtmlProcessor::class,
VoidElementsSelfClosingProcessor::class,
# CsrfReplaceProcessor::class, // DEACTIVATED - FormDataResponseMiddleware handles form processing
];
$domImplementations = [];
/*$domImplementations = [];
foreach ($this->results->interfaces->get(DomProcessor::class) as $className) {
$domImplementations[] = $className->getFullyQualified();
}
@@ -65,13 +70,7 @@ final readonly class TemplateRendererInitializer
$stringImplementations = [];
foreach ($this->results->interfaces->get(StringProcessor::class) as $className) {
$stringImplementations[] = $className->getFullyQualified();
}
$templateProcessor = new TemplateProcessor(
[ComponentProcessor::class, ...$domImplementations],
$stringImplementations,
$this->container,
);
}*/
$templateProcessor = new TemplateProcessor($doms, $strings, $this->container);
@@ -81,10 +80,19 @@ final readonly class TemplateRendererInitializer
$pathProvider = $this->container->get(PathProvider::class);
/** @var Cache $cache */
$cache = $this->container->get(Cache::class);
/** @var PerformanceService $performanceService */
$performanceService = $this->container->get(PerformanceService::class);
$loader = new TemplateLoader(pathProvider: $pathProvider, cache: $cache, discoveryRegistry: $this->results/*, templates: $templates*/);
// Define caching state centrally
$cacheEnabled = false; // Keep caching disabled while debugging template processing
$loader = new TemplateLoader(
pathProvider: $pathProvider,
cache: $cache,
discoveryRegistry: $this->results,
cacheEnabled: $cacheEnabled // Pass cache state to loader
);
$this->container->singleton(TemplateLoader::class, $loader);
@@ -93,6 +101,7 @@ final readonly class TemplateRendererInitializer
performanceService: $performanceService,
processor: $templateProcessor,
cache: $cache,
cacheEnabled: $cacheEnabled, // Use same cache state for Engine
);
}
}