# ๐Ÿ› ๏ธ Sistema Debug NetGescon - Manuale Completo ## ๐Ÿ“‹ Indice 1. [Introduzione](#introduzione) 2. [Architettura del Sistema](#architettura) 3. [Guida Rapida](#guida-rapida) 4. [Funzionalitร  Dettagliate](#funzionalitร ) 5. [Comandi Console](#comandi) 6. [Dashboard Web](#dashboard) 7. [Risoluzione Problemi](#troubleshooting) 8. [Best Practices](#best-practices) --- ## ๐ŸŽฏ Introduzione Il **Sistema Debug NetGescon** รจ un toolkit completo per: - **Gestione file duplicati** - Identifica e pulisce automaticamente view duplicate - **Verifica integritร ** - Controlla route, view e relationship - **Monitoraggio sistema** - Dashboard in tempo reale - **Debug avanzato** - Strumenti per sviluppatori ### Problema Risolto > *"Prima perdevano ore a cercare quale view veniva caricata, ora in 2 click hanno il quadro completo del sistema!"* --- ## ๐Ÿ—๏ธ Architettura del Sistema ``` app/Debug/ โ”œโ”€โ”€ Commands/ # Comandi Artisan โ”‚ โ”œโ”€โ”€ SystemDebug.php โ”‚ โ””โ”€โ”€ FindDuplicateViews.php โ”œโ”€โ”€ Controllers/ # Controller web โ”‚ โ””โ”€โ”€ SystemDebugController.php โ”œโ”€โ”€ Services/ # Logica di business โ”‚ โ””โ”€โ”€ SystemAnalyzer.php โ””โ”€โ”€ DebugServiceProvider.php resources/views/admin/debug/ โ””โ”€โ”€ index.blade.php # Dashboard web docs/debug/ # Documentazione โ”œโ”€โ”€ README.md # Questo file โ”œโ”€โ”€ INSTALLATION.md # Guida installazione โ””โ”€โ”€ API.md # Riferimenti API ``` ### Componenti Principali | Componente | Responsabilitร  | File | |------------|---------------|------| | **SystemAnalyzer** | Analisi sistema completa | `Services/SystemAnalyzer.php` | | **SystemDebug** | Comando principale CLI | `Commands/SystemDebug.php` | | **FindDuplicateViews** | Gestione duplicati legacy | `Commands/FindDuplicateViews.php` | | **SystemDebugController** | Interface web | `Controllers/SystemDebugController.php` | --- ## โšก Guida Rapida ### 1. Accesso Dashboard ``` http://tuo-sito.com/admin/debug ``` ### 2. Comandi Essenziali ```bash # Scansione completa php artisan netgescon:debug --scan # Solo duplicati php artisan netgescon:debug --duplicates # Pulizia automatica php artisan netgescon:debug --clean # Report dettagliato php artisan netgescon:debug --report ``` ### 3. Flusso Tipico di Debug ```mermaid graph TD A[Problema Segnalato] --> B[Dashboard Debug] B --> C[Scansione Completa] C --> D{Duplicati Trovati?} D -->|Si| E[Pulizia Automatica] D -->|No| F[Verifica Route/View] E --> G[Test Sistema] F --> G G --> H[Sistema OK] ``` --- ## ๐Ÿ”ง Funzionalitร  Dettagliate ### 1. Gestione File Duplicati #### Problema Laravel carica la prima view che trova nel path, causando comportamenti imprevisti quando esistono duplicati. #### Soluzione - **Scansione automatica** di tutte le directory - **Classificazione per rischio** (Alto/Medio/Basso) - **Backup sicuro** in `_DUPLICATES_MOVED/` - **Conservazione file attivo** piรน recente #### Algoritmo di Pulizia ```php foreach ($duplicates as $filename => $files) { $activeFile = findMostRecent($files, 'resources/views'); $toMove = array_filter($files, fn($f) => $f !== $activeFile); foreach ($toMove as $file) { moveToBackup($file, '_DUPLICATES_MOVED/'); } } ``` ### 2. Verifica Route e View #### Controlli Eseguiti - โœ… Route definite hanno controller esistenti - โœ… Controller referenziano view esistenti - โœ… View path sono corretti - โœ… Parametri route sono validi #### Output Tipico ``` โŒ View [admin.old-page] mancante per route admin/old-page โœ… Route admin/dashboard โ†’ View OK โš ๏ธ Controller AdminController@oldMethod non trovato ``` ### 3. Controllo Model Relationships #### Validazioni - **Relationship method** esistono - **Model target** sono presenti - **Foreign key** seguono convenzioni - **Inverse relationship** sono definiti #### Esempio di Errore ``` ๐Ÿ’” App\Models\Palazzina::stabile() -> Model Stabile non trovato โœ… App\Models\Stabile::palazzine() -> OK ``` --- ## ๐Ÿ’ป Comandi Console ### SystemDebug - Comando Principale ```bash php artisan netgescon:debug [opzioni] ``` #### Opzioni Disponibili | Opzione | Descrizione | Esempio | |---------|-------------|---------| | `--scan` | Scansione completa sistema | `php artisan netgescon:debug --scan` | | `--duplicates` | Solo ricerca duplicati | `php artisan netgescon:debug --duplicates` | | `--routes` | Verifica route e view | `php artisan netgescon:debug --routes` | | `--models` | Controllo relationship | `php artisan netgescon:debug --models` | | `--clean` | Pulizia automatica | `php artisan netgescon:debug --clean` | | `--report` | Genera report JSON | `php artisan netgescon:debug --report` | #### Output di Esempio ``` ๐Ÿ” NetGescon System Debug v1.0 ===================================== ๐Ÿ” Ricerca duplicati... โš ๏ธ index.blade.php: 81 copie trovate โš ๏ธ create.blade.php: 36 copie trovate โœ… Pulizia completata: 124 file spostati ๐Ÿ“Š RIEPILOGO SISTEMA ==================== +----------------+------------------+---------------+ | Categoria | Problemi Trovati | Stato | +----------------+------------------+---------------+ | File Duplicati | 0 | โœ… OK | | View Mancanti | 2 | โŒ Errori | | Relationship | 1 | โš ๏ธ Warning | +----------------+------------------+---------------+ ๐Ÿ’ก Sistema 95% pulito - 3 problemi minori rimanenti ``` ### FindDuplicateViews - Comando Legacy ```bash php artisan netgescon:find-duplicates [--action=move] ``` Comando specializzato per la gestione duplicati con interfaccia interattiva. --- ## ๐ŸŒ Dashboard Web ### Accesso - **URL**: `/admin/debug` - **Permessi**: Admin/Amministratore - **Layout**: Universal NetGescon ### Sezioni Dashboard #### 1. Status Cards - **Sistema**: PHP, Laravel, Environment - **File Duplicati**: Conteggio e dimensione - **View & Route**: Statistiche - **Model & Controller**: Conteggio #### 2. Panel Azioni - **Scansiona Duplicati** - Trova file duplicate - **Pulisci Duplicati** - Rimuove automaticamente - **Verifica Route/View** - Controlla integritร  - **Controlla Relationship** - Valida model - **Genera Report** - Crea report JSON - **Scansione Completa** - Analisi totale #### 3. Console Output Console in tempo reale con: - โœ… Messaggi successo (verde) - โš ๏ธ Warning (giallo) - โŒ Errori (rosso) - โ„น๏ธ Info (blu) #### Esempio Console ``` [14:32:15] โ„น๏ธ Iniziando Scansione Duplicati... [14:32:16] โš ๏ธ Trovate 124 view duplicate [14:32:17] โœ… Scansione Duplicati completata ``` ### JavaScript API ```javascript // Esegue un'azione di debug executeAction('/admin/debug/scan-duplicates', 'Scansione Duplicati'); // Aggiunge messaggio alla console addToConsole('Test completato', 'success'); // Pulisce la console document.getElementById('clearConsole').click(); ``` --- ## ๐Ÿ”ง API Endpoints ### POST Routes | Endpoint | Azione | Parametri | |----------|--------|-----------| | `/admin/debug/scan-duplicates` | Scansiona duplicati | - | | `/admin/debug/clean-duplicates` | Pulisce duplicati | - | | `/admin/debug/verify-routes` | Verifica route/view | - | | `/admin/debug/check-models` | Controlla relationship | - | | `/admin/debug/full-scan` | Scansione completa | - | | `/admin/debug/generate-report` | Genera report | - | ### Response Format ```json { "success": true, "message": "Scansione duplicati completata", "output": "๐Ÿ” Ricerca duplicati...\nโš ๏ธ Trovate 124 view duplicate\nโœ… Completato", "data": { "duplicates_found": 124, "high_risk": 15, "cleaned": 109 } } ``` --- ## ๐Ÿ“ Report Sistema ### Struttura Report JSON ```json { "timestamp": "2025-07-22 14:32:15", "system_info": { "php_version": "8.2.0", "laravel_version": "11.0", "environment": "local", "debug_mode": true, "views_count": 245, "routes_count": 156 }, "analysis": { "duplicates": { "total_files": 124, "high_risk": 15, "medium_risk": 45, "low_risk": 64, "details": { ... } }, "missing_views": { "total": 2, "details": [...] }, "broken_relationships": { "total": 1, "details": [...] } }, "recommendations": [ { "type": "critical", "message": "Trovati 15 file duplicati ad alto rischio", "action": "Esegui pulizia duplicati" } ] } ``` ### Localizzazione Report I report vengono salvati in: ``` storage/logs/netgescon_debug_YYYY-MM-DD_HH-MM-SS.json ``` --- ## ๐Ÿšจ Risoluzione Problemi ### Errori Comuni #### 1. "View [nome-view] not found" ```bash # Diagnosi php artisan netgescon:debug --routes # Soluzioni possibili: # - Creare la view mancante # - Rimuovere il riferimento dal controller # - Controllare il path della view ``` #### 2. "Too many duplicate files" ```bash # Pulizia automatica php artisan netgescon:debug --clean # Verifica risultato php artisan netgescon:debug --duplicates ``` #### 3. "Relationship method not found" ```php // Nel model, aggiungi il relationship mancante: public function stabile() { return $this->belongsTo(Stabile::class); } ``` #### 4. Dashboard non carica ```bash # Controlla route php artisan route:list | grep debug # Verifica permessi php artisan permission:show admin # Clear cache php artisan config:clear php artisan view:clear ``` ### Debug Avanzato #### Modalitร  Verbose ```bash php artisan netgescon:debug --scan -v ``` #### Log Dettagliati ```bash tail -f storage/logs/laravel.log | grep -i debug ``` #### Test Manuale Route ```bash php artisan route:list | grep -i debug curl -X POST http://localhost:8000/admin/debug/scan-duplicates ``` --- ## ๐Ÿ“ˆ Best Practices ### 1. Monitoraggio Regolare ```bash # Cron job giornaliero 0 2 * * * cd /var/www/netgescon && php artisan netgescon:debug --scan > /dev/null ``` ### 2. Backup Prima della Pulizia ```bash # Backup manuale cp -r resources/views resources/views_backup_$(date +%Y%m%d) # Pulizia sicura php artisan netgescon:debug --clean ``` ### 3. Verifica Post-Deploy ```bash #!/bin/bash # deploy-check.sh echo "๐Ÿ” Controllo post-deploy..." php artisan netgescon:debug --routes php artisan netgescon:debug --models echo "โœ… Deploy verificato" ``` ### 4. Sviluppo Team ```bash # Prima di commit git add . php artisan netgescon:debug --scan git commit -m "Feature: nuova view + debug check" ``` ### 5. Documentazione View ```php *"Ora sviluppiamo features invece di cercare bug!"* - Team NetGescon --- **๐Ÿš€ Sistema Debug NetGescon v1.0 - Sviluppa con Fiducia!**