#!/bin/bash # Script to fix AdminLayoutProcessor usage across all admin controllers # Replaces primitive obsession with proper Value Object pattern files=( "src/Application/Admin/Content/ImageManagerController.php" "src/Application/Admin/Content/ImageSlotsController.php" "src/Application/Admin/Analytics/AnalyticsController.php" "src/Application/Admin/System/HealthController.php" "src/Application/Admin/System/PhpInfoController.php" "src/Application/Admin/System/EnvironmentController.php" "src/Application/Admin/System/PerformanceController.php" "src/Application/Admin/Development/WafTestController.php" "src/Application/Admin/Development/DesignSystemController.php" "src/Application/Admin/Development/StyleguideController.php" "src/Application/Admin/Development/RoutesController.php" "src/Application/Admin/Infrastructure/ServicesController.php" "src/Application/Admin/Infrastructure/CacheMetricsController.php" "src/Application/Admin/Infrastructure/LogViewerController.php" "src/Application/Admin/Infrastructure/RedisController.php" ) for file in "${files[@]}"; do if [ -f "$file" ]; then echo "Fixing $file..." # Replace the method call pattern sed -i 's/\$layoutData = \$this->layoutProcessor->processAdminLayout(\$data);/\$finalData = \$this->layoutProcessor->processLayoutFromArray(\$data);/g' "$file" # Replace the ViewResult data pattern sed -i 's/data: array_merge(\$layoutData, \$data)/data: \$finalData/g' "$file" echo "Fixed $file" else echo "File not found: $file" fi done echo "All files processed!"