feat: Complete Woles Framework v1.0 with enterprise-grade UI

- Add comprehensive error handling system with custom error pages
- Implement professional enterprise-style design with Tailwind CSS
- Create modular HMVC architecture with clean separation of concerns
- Add security features: CSRF protection, XSS filtering, Argon2ID hashing
- Include CLI tools for development workflow
- Add error reporting dashboard with system monitoring
- Implement responsive design with consistent slate color scheme
- Replace all emoji icons with professional SVG icons
- Add comprehensive test suite with PHPUnit
- Include database migrations and seeders
- Add proper exception handling with fallback pages
- Implement template engine with custom syntax support
- Add helper functions and facades for clean code
- Include proper logging and debugging capabilities
This commit is contained in:
mwpn
2025-10-11 07:08:23 +07:00
commit 0b42271bfe
90 changed files with 8315 additions and 0 deletions

62
app/Core/Middleware.php Normal file
View File

@@ -0,0 +1,62 @@
<?php
namespace App\Core;
/**
* NovaCore Middleware Pipeline
* Stackable middleware system
*/
class Middleware
{
private array $middlewares = [];
/**
* Add middleware to stack
*/
public function add($middleware): void
{
$this->middlewares[] = $middleware;
}
/**
* Run middleware pipeline
*/
public function run(string $method, string $uri): void
{
$index = 0;
$this->executeMiddleware($index, $method, $uri);
}
/**
* Execute middleware recursively
*/
private function executeMiddleware(int &$index, string $method, string $uri): void
{
if ($index >= count($this->middlewares)) {
return;
}
$middleware = $this->middlewares[$index++];
if (is_string($middleware)) {
$middleware = new $middleware();
}
if (is_object($middleware) && method_exists($middleware, 'handle')) {
$middleware->handle($method, $uri, function () use (&$index, $method, $uri) {
$this->executeMiddleware($index, $method, $uri);
});
} else {
// Continue to next middleware
$this->executeMiddleware($index, $method, $uri);
}
}
/**
* Get all registered middlewares
*/
public function getMiddlewares(): array
{
return $this->middlewares;
}
}