PHP Classes

File: docs/CLEANUP_DEBUG_CODE.md

Recommend this page to a friend!
  Packages of Adrian M   upMVC   docs/CLEANUP_DEBUG_CODE.md   Download  
File: docs/CLEANUP_DEBUG_CODE.md
Role: Auxiliary data
Content type: text/markdown
Description: Auxiliary data
Class: upMVC
Pure PHP web development without other frameworks
Author: By
Last change: Update of docs/CLEANUP_DEBUG_CODE.md
Date: 2 months ago
Size: 6,383 bytes
 

Contents

Class file image Download

Production-Ready Code - Debug Code Removed

Cleanup Summary

Date: October 16, 2025

All debug logging has been removed from the production code. The system now runs cleanly without debug output while maintaining all the bug fixes.

Files Cleaned

1. modules/auth/Controller.php

Removed: - All file_put_contents() debug logging - Debug comments about what was being logged - Unnecessary comments explaining old bugs

Kept: - Clean, working authentication flow - Intended URL redirect logic - All bug fixes (comparison operator, exit statements, etc.)

Final Clean Code:

$_SESSION["username"] = $row['username'];
$_SESSION["iduser"]   = $row['id'];
$_SESSION["logged"] = true;
$_SESSION['authenticated'] = true;

// Redirect to intended URL if available, otherwise home
$intendedUrl = $_SESSION['intended_url'] ?? null;
if ($intendedUrl) {
    $redirectUrl = $intendedUrl;
    unset($_SESSION['intended_url']);
} else {
    $redirectUrl = $this->url;
}

$this->html->validateToken($redirectUrl);
exit;

2. etc/Router.php

Removed: - Debug logging of reqRoute, reqMet, reqURI - Timestamp creation - File operations for debugging

Kept: - Clean request array creation - All routing logic - Middleware integration

Final Clean Code:

public function dispatcher($reqRoute, $reqMet, ?string $reqURI = null)
{
    // Simple request context
    $request = [
        'route' => $reqRoute,
        'method' => $reqMet,
        'uri' => $reqURI,
        'timestamp' => time()
    ];
    
    // ... routing logic continues
}

3. etc/Middleware/AuthMiddleware.php

Removed: - Debug logging of route and request URI - Debug messages about storing intended_url - Debug messages about not overwriting

Kept: - Clean authentication check - Intended URL storage logic - All bug fixes

Final Clean Code:

public function handle(array $request, callable $next)
{
    $route = $request['route'] ?? '';
    
    if ($this->requiresAuth($route)) {
        if (!$this->isAuthenticated()) {
            // Store intended URL only if not already set
            if (!isset($_SESSION['intended_url'])) {
                $intendedUrl = $request['uri'];
                $_SESSION['intended_url'] = $intendedUrl;
            }
            
            $baseUrl = defined('BASE_URL') ? BASE_URL : '';
            header('Location: ' . $baseUrl . $this->redirectTo);
            exit;
        }
    }

    return $next($request);
}

What Was Removed

Debug Logging Statements

// ? REMOVED
$logFile = THIS_DIR . '/logs/debug_' . date('Y-m-d') . '.log';
$timestamp = date('Y-m-d H:i:s');
file_put_contents($logFile, "[$timestamp] DEBUG ...\n", FILE_APPEND);

Verbose Comments

// ? REMOVED
// DEBUG: Log session state
// DEBUG: What are we storing?
// DEBUG: Already have intended_url, not overwriting

Old Bug Explanation Comments

// ? REMOVED
// REMOVED: $this->html->validateToken(); 
// This was outputting JavaScript that redirected to home, overriding PHP header!

What Was Kept

Essential Comments

// ? KEPT
// Store intended URL ONLY if not already set
// This prevents overwriting when redirecting to login page

Important Inline Comments

// ? KEPT
$_SESSION["logged"] = true;           // Legacy compatibility
$_SESSION['authenticated'] = true;     // Middleware compatibility

Critical Implementation Notes

// ? KEPT
exit;  // Stop execution after redirect

Benefits of Cleanup

1. Performance

  • No file I/O operations on every request
  • Faster execution (no timestamp generation, string formatting, file writes)
  • Reduced disk usage

2. Security

  • No sensitive data written to logs
  • Cleaner error output
  • Easier to secure (no log files to protect)

3. Maintainability

  • Cleaner, more readable code
  • Easier to understand flow
  • Less noise in the codebase

4. Production Ready

  • Professional code quality
  • No development artifacts
  • Clear, concise logic

When to Use Debug Code

Development Environment

Add debug code when: - Tracking down bugs - Understanding request flow - Testing new features - Investigating issues

Production Environment

Remove debug code because: - Performance impact - Log file bloat - Security concerns - Professional appearance

Recommended Approach

Use Configuration-Based Debugging

if (defined('DEBUG') && DEBUG === true) {
    $logFile = THIS_DIR . '/logs/debug_' . date('Y-m-d') . '.log';
    file_put_contents($logFile, "Debug info\n", FILE_APPEND);
}

Or Use a Proper Logger

use upMVC\Logger;

if (Logger::isEnabled()) {
    Logger::debug('Auth Controller - Login successful');
    Logger::debug('intended_url in session: ' . ($_SESSION['intended_url'] ?? 'NULL'));
}

All Bug Fixes Remain Intact

? Bug #1: Middleware Overwriting Session

Fixed in AuthMiddleware.php - Only stores intended_url if not already set

? Bug #2: Assignment Instead of Comparison

Fixed in Controller.php auth() method - Uses === instead of =

? Bug #3: Missing Exit Statements

Fixed in Controller.php auth() method - Added exit after redirects

? Bug #4: Trailing Slash in Redirect

Fixed in View.php validateToken() - Removed trailing slash

Testing After Cleanup

Verify Everything Still Works

  1. ? Logout
  2. ? Visit protected route (e.g., `/moda`)
  3. ? Redirected to login
  4. ? Login successfully
  5. ? Redirected to originally intended page
  6. ? No debug output visible
  7. ? No performance issues

Check Log Files

  • Debug log file should stop growing
  • Only production logs (errors, access) should exist
  • Request logs (LoggingMiddleware) still work if enabled

Files Modified

  1. `d:\GitHub\upMVC\modules\auth\Controller.php` - Removed 9 lines of debug code - Removed verbose comments
  2. `d:\GitHub\upMVC\etc\Router.php` - Removed 6 lines of debug code
  3. `d:\GitHub\upMVC\etc\Middleware\AuthMiddleware.php` - Removed 8 lines of debug code

Total: ~23 lines of debug code removed

Conclusion

The codebase is now production-ready: - ? All bugs fixed - ? Clean, professional code - ? No debug artifacts - ? Optimal performance - ? Easy to maintain

The authentication redirect system works perfectly without any debug overhead! ?