Download the PHP package salvatorecervone/logoperations without Composer

On this page you can find all versions of the php package salvatorecervone/logoperations. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package logoperations

Log Operations - Pacchetto Laravel + Vue 3

Pacchetto Composer Laravel per il tracciamento, monitoraggio e analisi delle operazioni applicative con gestione intelligente delle transazioni database, stack trace a 2 livelli e Centro di Controllo Zero-Code (Tracking Studio) per attivare i log senza modificare codice.


🚀 Caratteristiche Principali


📦 Installazione

1. Includere il pacchetto nel progetto

Il LogOperationsServiceProvider e la facade LogOperations vengono registrati automaticamente tramite package auto-discovery.

2. Pubblicare configurazione, migrazioni e viste

3. Eseguire le migrazioni

💡 Vuoi isolare i log su un database separato?
Imposta LOG_OPERATIONS_DB_CONNECTION=logs_db nel tuo file .env. Le migrazioni del pacchetto indirizzeranno automaticamente le tabelle sul database dedicato. Se desideri eseguire le migrazioni esclusivamente per LogOperations senza toccare l'app principale, consulta la sezione dedicata Database Separato & Migrazioni Isolate.

Verranno create le tabelle:


⚙️ Configurazione Completa (config/logoperations.php)

Il file config/logoperations.php offre il controllo granulare su ogni aspetto del pacchetto. Di seguito la configurazione completa annotata:


🗄️ Configurazione su Database Separato (Dedicated Logs DB) & Migrazioni Isolate

LogOperations è progettato per operare in modo completamente trasparente su un database dedicato e isolato. Questo garantisce che i log non consumino spazio o I/O sul database primario e che un DB::rollBack() nell'applicazione non possa mai cancellare l'audit trail.

1. Definisci la connessione in config/database.php

Aggiungi una connessione dedicata (es. logs_db):

2. Imposta la variabile d'ambiente in .env

💡 Nota sui permessi MySQL (specialmente con Docker):
Se crei un nuovo database su un container MySQL esistente, ricorda di assegnare all'utente i permessi sul nuovo schema (da DBeaver come root o da terminale):


3. Come eseguire le migrazioni SOLO nel database dedicato?

Quando si usa un database dedicato, l'obiettivo è assicurarsi che solo le tabelle del pacchetto (log_operazioni, log_operazioni_regole, log_operazioni_soggetti) vengano create in logs_db, senza inquinare quel database con le tabelle dell'app (users, cache, jobs, ecc.).

Hai a disposizione due modalità:

🔹 Modalità A: Isolamento Totale & Esecuzione Mirata (Consigliata)

Se desideri che il normale php artisan migrate dell'applicazione ignori le tabelle di log e vuoi eseguire le migrazioni in modo indipendente:

  1. Disattiva il caricamento automatico delle migrazioni in .env:

    (in alternativa puoi inserire LogOperations::ignoreMigrations(); nel metodo register() del tuo AppServiceProvider).

  2. Esegui la migrazione mirando esclusivamente al percorso del pacchetto e alla connessione dedicata:

    (se hai pubblicato le migrazioni con vendor:publish, usa --path=database/migrations/vendor/logoperations).

In questo modo:

  • Tutte le tabelle di LogOperations e la tabella di controllo migrations di Laravel risiederanno al 100% all'interno di logs_db.
  • Il database principale dell'applicazione non avrà alcuna traccia delle tabelle dei log.
  • Nessuna tabella della tua applicazione verrà mai creata nel database dei log.

🔹 Modalità B: Esecuzione Automatica con Connessione Dedicata

Se lasci LOG_OPERATIONS_LOAD_MIGRATIONS=true (default), ogni migrazione del pacchetto implementa nativamente:

Lanciando semplicemente php artisan migrate:


4. Gestione Trasparente delle Relazioni Cross-Database (Users & Storyboard)

Nei database distribuiti, un problema classico dei framework ORM è che i log risiedono su logs_db, mentre le tabelle applicative come users, orders, tickets risiedono sul database principale mysql:


🎛️ Centro di Controllo Zero-Code (Tracking Studio)

Il Tracking Studio consente a operatori, sviluppatori e team di supporto di attivare il tracciamento direttamente dall'interfaccia grafica:

1. Studio Rotte (Pagine Web & API)

2. Studio Funzioni & Servizi (Metodi PHP)

3. Monitoraggio Utente Live a Tempo


🚦 Modalità di Utilizzo del Middleware

Il pacchetto supporta 3 diverse modalità di utilizzo per adattarsi a qualsiasi architettura applicativa:


🎛️ Modalità 1: Globale Selettivo (Zero-Code da Pannello) — Consigliata e Default in v1.3+

Registri il middleware a livello globale con il default di fabbrica 'mode' => 'selective'.


🎯 Modalità 2: Mirato da Codice (Gruppi o Singole Rotte)

Applichi il middleware direttamente alle rotte o ai gruppi di risorse business. Sono supportati indifferentemente sia l'alias testuale sia la classe (consigliata per Laravel 11/12/13):

[!TIP] Best Practice per Route::resource vs Route::apiResource: Se utilizzi Route::resource() per viste web HTML tradizionali insieme a allowed_methods => ['*'], verranno intercettate anche le semplici visualizzazioni dei form HTML vuoti (GET /ordini/create, GET /ordini/{id}/edit). Per evitarlo, prediligi Route::apiResource() per gli endpoint REST, oppure aggiungi '*/create' e '*/edit' in excluded_routes.


🌊 Modalità 3: Globale a Tappeto (mode => 'all')

Registri il middleware globale e mantieni 'mode' => 'all'. Il sistema intercetta tutte le rotte che corrispondono ai verbi HTTP consentiti, escluse solo quelle in excluded_routes.

[!WARNING] Attenzione al consumo di memoria e storage: Su applicazioni reali ad alto traffico o con molteplici chiamate a tabelle di lookup (tipologiche, elenchi statici, polling), la modalità a tappeto comporta un carico pesante di memoria e un rapido consumo di spazio nel database dovuto alla serializzazione di parametri e stack trace JSON. Se utilizzi questa modalità, assicurati di escludere opportunamente i prefissi delle tipologiche in excluded_routes o di passare alla Modalità 1.


Registrazione del Middleware

In Laravel 11+ (bootstrap/app.php):

In Laravel 10 (app/Http/Kernel.php):


🔍 Tracciamento Manuale (Facade)

Se desideri aggiungere checkpoint o tracciare blocchi di codice specifici all'interno dei tuoi Controller o Service:


📡 API REST Incluse

Il pacchetto espone automaticamente i seguenti endpoint REST sotto /api/logoperations:

Consultazione e Analisi Log

Metodo Endpoint Descrizione
GET /api/logoperations Elenco paginato dei log con filtri combinabili (vedi parametri sotto)
GET /api/logoperations/{id} Dettaglio completo di un log con stack trace
GET /api/logoperations/stats Statistiche aggregate KPI (richieste, errori, latenza)
GET /api/logoperations/http-codes Elenco codici di stato registrati
GET /api/logoperations/verbs Verbi HTTP registrati
GET /api/logoperations/applications Nomi applicazioni registrate

Parametri di Filtro supportati da GET /api/logoperations:

Gestione Regole Tracking Studio (Zero-Code)

Metodo Endpoint Descrizione
GET /api/logoperations/studio/routes Mappa di tutte le rotte rilevate con stato log
GET /api/logoperations/studio/classes Albero delle classi e dei metodi applicativi scansionati
GET /api/logoperations/studio/rules Elenco di tutte le regole dinamiche attive
POST /api/logoperations/studio/rules Attiva o aggiorna una regola (rotta o metodo)
DELETE /api/logoperations/studio/rules/{id} Elimina una regola di tracciamento
POST /api/logoperations/studio/user-session Avvia il monitoraggio temporizzato di un utente
DELETE /api/logoperations/studio/user-session/{id} Interrompe anticipatamente una sessione utente
GET /api/logoperations/studio/users Ricerca rapida utenti per nome o email

🔐 Protezione e Autorizzazione API (Gate & Middleware)

Per impostazione predefinita, in ambiente locale (APP_ENV=local) o di test le API sono accessibili liberamente. In ambiente di produzione o staging, è fondamentale proteggere l'accesso:

1. Configurare i Middleware in config/logoperations.php:

2. Definire il Gate di Autorizzazione (es. in AppServiceProvider.php o AuthServiceProvider.php):

Il pacchetto verifica automaticamente il Gate viewLogOperations:

Se il Gate restituisce false, le API bloccheranno l'accesso con codice 403 Forbidden.


💻 Integrazione Vue 3

Utilizzo Componente Completo

Componenti Singoli Disponibili

Componente Descrizione
LogOperationsViewer Interfaccia unificata con navigazione tra Registro Log e Tracking Studio
LogStoryboard Timeline interattiva e audit trail verticale per singoli record/modelli Eloquent
LogTrackingStudio Centro di controllo zero-code (Studio Rotte, Studio Funzioni, Monitor Utente)
LogQueryBuilder Costruttore di query avanzate con gruppi logici AND / OR
LogDetailModal Drawer/modal con ispezione del payload, transazioni e Stack Trace a 2 livelli
LogStatsBar Barra riassuntiva dei KPI con tassi di errore e tempi medi

🖥️ Dashboard Web Standalone (/logoperations)

Il pacchetto include una Dashboard Web autonoma completa, accessibile via browser senza dover compilare o includere asset npm/Vite nel progetto host:


📖 Storyboard del Record & Audit Trail

La Storyboard ricostruisce la timeline completa di vita di qualsiasi entità del tuo dominio applicativo (ordini, fatture, ticket, utenti).

1. Aggiungere il Trait al Modello Eloquent:

2. Rilevamento Automatico tramite Route Model Binding:

Se una rotta utilizza Route Model Binding (es. /api/ordini/{order}), il middleware associa automaticamente il modello come target (subject) del log:

3. Checkpoint Applicativi ed Esplorazione Storyboard:

4. Tracciamento Multi-Modello & Operazioni Complesse (Auto-Discovery Eloquent):

Quando un'operazione di business tocca più entità distinte all'interno della stessa richiesta HTTP (es. durante un checkout che crea un ordine, genera una fattura e aggiorna il profilo utente), LogOperations le intercetta tutte automaticamente:

5. Propagazione Storyboard ai Modelli Padre ($logParents):

In molte architetture di dominio, le richieste HTTP creano o modificano record figli o di associazione (es. AnagraficaUfficio, OrderItem, TicketMessage) senza eseguire un UPDATE sul modello genitore (Anagrafica, Order, Ticket).

Dal punto di vista dell'utente finale o dell'auditor, quell'operazione appartiene a pieno titolo alla storia dell'entità principale (es. la persona o l'ordine).

Per fare in modo che la Storyboard del modello padre riceva automaticamente l'evento, basta dichiarare nel modello figlio la proprietà $logParents:

Quando AnagraficaUfficio viene salvato:

  1. LogOperations risolve in modo sicuro le relazioni definite in $logParents.
  2. Aggiunge i modelli genitore (es. Anagrafica #3674 e Ufficio #7891) come entità collegate con azione associated.
  3. Aprendo la Storyboard di Anagrafica #3674, l'operazione compare all'istante nella sua timeline!

[!TIP] Configurazione Centralizzata Alternativa:
Se non vuoi modificare la classe del modello, puoi definire la stessa mappatura in config/logoperations.php:

6. Componente Vue Dedicato:


🏷️ Tracciamento Dichiarativo con Attributo PHP 8 (#[Traceable])

Oltre al pannello zero-code, puoi tracciare classi di servizio e metodi in modo dichiarativo tramite l'attributo nativo #[Traceable]:


⚡ Prestazioni: Terminable Middleware, Coda Asincrona & Sampling

Il pacchetto è progettato per ambienti di produzione ad alto traffico:

  1. Terminable Middleware (terminate()): La persistenza dei log su database avviene solo dopo che la risposta HTTP è stata inviata al client, con latenza percepita pari a zero.

  2. Logging Asincrono su Coda:

    [!TIP] Gestione del Queue Worker:

    • Coda default (Predefinita): Funziona immediatamente con il worker standard di Laravel (php artisan queue:work).
    • Coda Dedicata (Consigliata per Alto Traffico): Se imposti LOG_OPERATIONS_QUEUE_NAME=log-operations per isolare il logging e non saturare la coda principale dell'app, ricorda di avviare il worker specificando entrambe le code:

      oppure aggiungi log-operations al tuo processo Supervisor o al file config/horizon.php.

    • In caso di broker di coda offline, il pacchetto esegue un fallback automatico su scrittura diretta o file di emergenza (storage/logs/logoperations-emergency.log).
    • Allerta email automatica con rate-limiting se il numero di job falliti supera la soglia.
  3. Campionamento Richieste di Successo (Sampling Rate):

    Gli errori (HTTP >= 400 ed eccezioni) vengono sempre registrati al 100%.


🛡️ Privacy, GDPR Art. 17 & Diritto all'Oblio

  1. Anonimizzazione Indirizzi IP (disabilitata di default per non alterare gli audit intranet):

    Maschera l'ultimo ottetto IPv4 (192.168.1.xxx o 192.168.1.0) e la porzione utente IPv6.

  2. Sanitizzazione Header Sensibili: Gli header Authorization, Cookie, Set-Cookie, X-XSRF-TOKEN, X-CSRF-TOKEN e credenziali HTTP vengono automaticamente mascherati.

  3. Diritto all'Oblio (GDPR Art. 17 - Forget User):

    Comando Artisan Console:


📥 Export Massivo Streaming & 🚨 Alerting Multi-Canale

1. Export in Streaming O(1) di Memoria

Il pacchetto include endpoint dedicati per lo scaricamento di grandi moli di log senza saturare la memoria RAM del server PHP:

2. Sistema di Alerting Multi-Canale

Notifiche in tempo reale al verificarsi di anomalie o eventi critici.

Canali Supportati:

Dove e come impostare i parametri (Variabili di Ambiente .env):

I parametri di alert possono essere configurati direttamente nel file .env della tua applicazione oppure in config/logoperations.php:

Selezione selettiva dei canali attivi (config/logoperations.php):

Se desideri attivare solo specifici canali (ad esempio solo Slack ed Email escludendo Discord), puoi personalizzare l'array 'channels' nel file config/logoperations.php:

Eventi Monitorati:

  1. Rollback di Transazioni SQL Pendenti: notifica immediata quando una richiesta termina lasciando transazioni aperte che vengono chiuse con rollback di emergenza.
  2. Picchi del Tasso di Errore: monitoraggio della percentuale di richieste in errore (status >= 400 o eccezioni) su una finestra temporale (es. ultimi 5 minuti).

Comando Artisan di Monitoraggio:

Può essere configurato nello scheduler di Laravel (routes/console.php):

Meccanismo Anti-Flood Throttle:

Tutti gli allarmi sono protetti da un rate-limiting intelligente basato su Cache (throttle_minutes => 15) per evitare che un disservizio continuativo intasi la casella email o i canali di messaggistica.


🛡️ Retention Policy, Salvaguardia Storyboard & Manutenzione

LogOperations non è un semplice file di log temporaneo, ma un Audit Trail permanente e Storyboard di vita delle entità aziendali (Ordini, Fatture, Ticket). Per questo motivo adotta una politica conservativa e ultra-sicura:

1. Salvaguardia Assoluta della Storyboard

2. Pulizia delle Regole di Sessione Scadute

Quando imposti sessioni a tempo per monitorare un utente (es. 15 minuti), la regola termina la sua validità una volta superato l'orario. Il comando rimuove le sole righe scadute dalla tabella log_operazioni_regole senza toccare minimamente i log operativi, che rimangono salvati per sempre in log_operazioni:

Può essere pianificato nello scheduler:

3. Pruning Conservativo per Grandi Volumi

In ambienti ad altissimo traffico (milioni di richieste HTTP al giorno) in cui si desideri alleggerire le sole letture generiche anonime obsolete:

4. Configurazione .env

5. Diagnostica & Stato del Pacchetto (logoperations:status)

Per verificare rapidamente la salute operativa del pacchetto, le regole attive, la configurazione degli allarmi e i conteggi del database:

Fornisce un output diagnostico suddiviso in 4 tabelle riassuntive:


🧪 Playground & Demo Live Incorporata (demo/)

All'interno della cartella demo/ è presente un'applicazione Laravel pronta all'uso con database SQLite, dati di test (Mario Rossi, Luigi Bianchi) e un simulatore interattivo.

Avvio della Demo:

Apri il browser su:


📦 Versioning & Changelog


📄 Licenza

Distribuito con licenza MIT.


All versions of logoperations with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^10.0|^11.0|^12.0|^13.0
illuminate/routing Version ^10.0|^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package salvatorecervone/logoperations contains the following files

Loading the files please wait ...