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:
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
