Dimittis de PHPStan 1.0, static analystorem pro PHP codice

Post sex annos evolutionis, prima versio stabilis PHPStan 1.0, instrumenti statici ad programmata programmandi programmanda, edita est. Permittit ut errores in codice PHP invenias sine eo exsequendo aut probationibus unitariis utendo. Codex propositi in PHP scriptus est et sub licentia MIT distribuitur.

Analysator decem verificationis gradus praebet, quoquo gradu subsequenti facultates prioris amplificante et probationes accuratiores praebentes:

  • Probationes fundamentales, detectio classium, functionum et methodorum ignotarum ($this), variabilium indefinitarum, et transmissio numeri argumentorum erronei.
  • Variabiles potentialiter indefinitas, methodos magicas ignotas, et proprietates classium cum functionibus `__call` et `__get` identificando.
  • Methodos ignotas in omnibus expressionibus identificat, non solum ad invocationes per $this. PHPDocs checker.
  • Genera redituum inspicienda et genera proprietatibus assignanda.
  • Detectio fundamentalis codicis "mortui" (numquam vocati). Detectio vocationum `instanceof` quae semper `falsum` reddunt, fragmentorum `else` quae numquam incitant, et codicis post enuntiationes `return`.
  • Genera argumentorum methodis et functionibus tradita inspicienda.
  • Monitio de annotationibus absentibus cum informatione de genere.
  • Monitio de typis unionum invalidis quae collectiones duorum vel plurium typorum definiunt.
  • Monitio de methodis vocandis et proprietatibus accedendis cum typis nullabilibus.
  • Usus generis "mixti" probans.

    Exempla difficultatum subiacentium identificatarum:

    • Existentia classium in `instanceof`, `catch`, `typehints`, et aliis constructis linguae adhibitarum.
    • Existentia et disponibilitas methodorum et functionum vocatarum, necnon numerus argumentorum translatorum.
    • Inspicit utrum methodus data eiusdem generis ac in enuntiatione `return` definita reddat.
    • Existentia et visibilitas proprietatum quibus acceditur, et verificatio generum datorum declaratorum et actualium in proprietatibus adhibitorum.
    • Numerus correctus parametrorum ad invocationes sprintf/printf in forma litterarum transmissorum.
    • Existentia variabilium, ratione habita blocorum formatorum ab operatoribus ramificantibus et iterationibus.
    • Inutiles conversiones typorum (e.g. "(string) 'foo'") et probationes severae ("===" et "!==") in datis cum diversis typis et operandis quae semper falsum reddunt.

    Proprietates praecipuae PHPStan 1.0:

    • Gradus validationis "9" implementatus est, qui usum generis "mixti" (mixed) examinat, qui ad functiones parametros diversorum generum accipientes accommodandas destinatus est. Gradus 9 usum "mixti" periculosum detegit, ut valores generis "mixti" ad alium genus transmittere, methodos generis "mixti" vocare, et proprietates eius accedere, cum hae fortasse non exstent.
    • Moderatio probationis valorum redditorum identicorum pro invocationibus functionum identicis utens annotationibus @phpstan-pure et @phpstan-impure.
    • Analysis typorum in constructis `try-catch-finally` utens annotationibus `@throws`.
    • Proprietates, methodos, et constantes internas (privatas) definitas sed inusitatas identificando.
    • Translatione revocationum incompatibilium ad functiones arrays tractantes, velut array_map et usort.
    • Typos inspice utrum annotationes typhint desint.
    • Descriptiones typorum nunc cum PHPDocs congruunt, tibi permittentes typos ex nuntiis errorum in PHPDocs uti.

    Source: opennet.ru

  • Emptum certos hospites pro locis cum praesidio DDoS, VPS VDS servers 🔥 Eme hospitium interretiale fidum cum praesidio DDoS, servitores VPS VDS | ProHoster