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

63
woles Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env php
<?php
// Woles Framework - Woles CLI
require_once __DIR__ . '/vendor/autoload.php';
// Load environment variables
if (file_exists(__DIR__ . '/.env')) {
$lines = file(__DIR__ . '/.env', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $line) {
if (strpos($line, '=') !== false && strpos($line, '#') !== 0) {
list($key, $value) = explode('=', $line, 2);
$key = trim($key);
$value = trim($value);
putenv("$key=$value");
$_ENV[$key] = $value;
}
}
}
use App\Core\Commands\CommandFactory;
$argv = $_SERVER['argv'] ?? [];
$command = $argv[1] ?? 'help';
$args = array_slice($argv, 2);
switch ($command) {
case 'make:module':
(new App\Core\Commands\MakeModuleCommand())->execute($args[0] ?? null);
break;
case 'make:controller':
(new App\Core\Commands\MakeControllerCommand())->execute($args[0] ?? null, $args[1] ?? null);
break;
case 'make:model':
(new App\Core\Commands\MakeModelCommand())->execute($args[0] ?? null, $args[1] ?? null);
break;
case 'serve':
(new App\Core\Commands\ServeCommand())->execute();
break;
case 'migrate':
(new App\Core\Commands\MigrateCommand())->execute();
break;
case 'migrate:rollback':
(new App\Core\Commands\MigrateCommand())->rollback();
break;
case 'migrate:status':
(new App\Core\Commands\MigrateCommand())->status();
break;
case 'seed':
(new App\Core\Commands\SeedCommand())->execute($args[0] ?? null);
break;
case 'key:generate':
(new App\Core\Commands\KeyGenerateCommand())->execute(false);
break;
case 'key:generate-show':
(new App\Core\Commands\KeyGenerateCommand())->execute(true);
break;
case 'help':
default:
(new App\Core\Commands\HelpCommand())->execute();
break;
}