feat: Add comprehensive documentation suite and reorganize project structure
- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
This commit is contained in:
44
f_scripts/php_lint_all.php
Normal file
44
f_scripts/php_lint_all.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
// Simple recursive PHP linter for the workspace
|
||||
// Usage: php f_scripts/php_lint_all.php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
function iterPhpFiles(string $dir): Generator {
|
||||
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS));
|
||||
foreach ($it as $file) {
|
||||
if ($file->isFile()) {
|
||||
$ext = strtolower($file->getExtension());
|
||||
if ($ext === 'php' || ($ext === '' && preg_match('/\\.php$/i', $file->getFilename()))) {
|
||||
yield $file->getPathname();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$root = realpath(__DIR__ . '/..');
|
||||
$ok = true;
|
||||
$count = 0;
|
||||
|
||||
foreach (iterPhpFiles($root) as $path) {
|
||||
// Skip vendor and cache dirs if present
|
||||
if (strpos($path, DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR) !== false) continue;
|
||||
if (strpos($path, DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR) !== false) continue;
|
||||
|
||||
$cmd = sprintf('php -l %s 2>&1', escapeshellarg($path));
|
||||
$out = shell_exec($cmd);
|
||||
$count++;
|
||||
if (!str_contains((string)$out, 'No syntax errors detected')) {
|
||||
$ok = false;
|
||||
fwrite(STDERR, $out);
|
||||
}
|
||||
}
|
||||
|
||||
if ($ok) {
|
||||
echo "OK: {$count} PHP files linted with no syntax errors." . PHP_EOL;
|
||||
exit(0);
|
||||
}
|
||||
|
||||
fwrite(STDERR, "Lint failed. See errors above." . PHP_EOL);
|
||||
exit(1);
|
||||
|
||||
Reference in New Issue
Block a user