Visualizzazione risultati 1 fino 3 di 3

Discussione: Analizzare codice e trovare errori con PHPStan

  1. #1
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Lightbulb Analizzare codice e trovare errori con PHPStan

    Mentre Pest aiuta ad evitare futuri problemi grazie ai test, a volte i problemi sono già li 😅

    Uno strumento che mi aiuta spesso è PHPStan (per static analyzer). PHPStan prende una directory di script PHP ed effettua una serie di controlli su valori e tipi delle variabili, la logica di if e cicli, sui parametri passati a funzioni e librerie.

    Scova errori tipo "occhio, stai cercando di usare una variabile che non esiste", ma anche cose complesse come "alla riga X metti true in questa variabile, ma questo pezzo di codice qua in fondo si aspetta un numero, e ti darà un risultato sbagliato".

    Come molte delle librerie PHP, PHPStan può essere installato con Composer, ad esempio con:
    Codice:
    composer global require phpstan/phpstan
    PHPStan ha diversi livelli di pignoleria. Di solito comincio da --level=1, e poi aumento finché i problemi di cui mi avvisa diventano "accettabili".
    Codice:
    C:\>phpstan analyze --level=1 d:\www\dreadnaut.altervista.org\
    
     ------ ----------------------------------------------
      Line   views\links\feed.php
     ------ ----------------------------------------------
      18     Variable $recent_links might not be defined.
     ------ ----------------------------------------------
    
     [ERROR] Found 1 error
    Whops, vado ad aggiustarlo subito!

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,752

    Predefinito

    Grazie, molto interessante! Quindi in pratica fa un'analisi statica di PHP giusto?

    EDIT: ah, sì: PHPStan (per static analyzer)

    Ciao!
    Ultima modifica di alemoppo : 27-07-2024 alle ore 11.43.40

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Si, analisi statica basata sia sul codice che eventuali commenti "docblock", se ce ne sono.

    I livelli vanno da 1 a 7 mi sembra, ma di solito mi fermo a --level=5. Livelli più alti solo se sto scrivendo librerie: da 6 in su si aspetta definizioni di tipi ovunque, una cosa utile ma secondo me eccessiva per un sito amatoriale.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •