Psalmi 3.12 exsolutio, static analystor pro lingua PHP. Alpha emissione PHP 8.0

Vimeo Company published nova emissione stabili analyser Psalm 3.12quae permittit ut manifestas et subtiles errores in PHP codice cognoscere, tum ipso facto nonnulla genera errorum corrigere. Ratio apta est ad cognoscendas difficultates tam in codice legato quam in codice, qui utitur modernis notis novis PHP ramis inductis. In codice exertus scriptum est in PHP and per distribui sub licentia MIT.

Psalmus plurimas difficultates in usu speciei rectae coniungit ac varias typical errata. Exempli gratia, monita adiuvat de mixturas variabilium diversorum generum expressione, probatorum logicorum falsarum (ut "si ($a && $a) {}", "si ($a && !$a) {}" et " si ($a) {} elseif ($a) {}"), incompleta initialization objecti proprietatum. Analyser in multi-filam modus decurrit. Fieri potest ut scans incrementalia perficiat, quae tantum analyses imaginum quae ab ultimo scan mutatae sunt.

Accedit, ut instrumenta programmandi secure praebeantur ut permittant ut annotationes in forma Docblock ("/** @var Type */") ad informationes de generibus variabilibus, valores reditus, parametros functiones, proprietates obiecti. Definiendi genus usus exemplarium et usus affirmativae sententiae etiam confirmatur. Exempli gratia:

/** @var string|nullus */
$a = foo();

/** @var chorda $a */
echo strpos($a, 'salve');

/** @psalm-si verum est B $a */
function isValidB(A$a) : bool {
revertetur $a instanceof B &&$a->isValid();
}

Ad eliminationem problematum inventarum automate, utilitas Psalterii providetur, quae plugins sustinet et Non concedit quaestiones commune codicem troubleshoot, adde annotationes typus, et manipulationes faciunt ut classes movendi ab uno spatio ad aliud, modos inter classes movens, et genera ac modos renominandi.

In Novo Psalmo implemented optio "--taint-analysis" permittit ut relationem inter parametri initus receptam ab usuario (exempli gratia, $_GET ['nomen']) et usus eorum in locis quae indolem effugiendi requirunt (exempli gratia, resonare" $ nomen "), inter vincula per vestigia intermediarum provinciarum et functionum vocat. Usus associativorum vestit $_GET, $_POST et $_COOKIE ut fontes potentiae periculosae notitiae considerantur, sed etiam fieri potest. definition propriis fontibus. Actiones quae investigationem sequi requirunt includunt outputa operationum quae HTML contentum generant, capita HTTP addunt vel interrogationes SQL exequuntur.

Sanatio adhibetur cum functionibus utens ut resonare, exec, includere et caput. Cum necessitatem evadendi dividendo, datae rationes ut textus, chordae cum SQL, HTML et Testa codice, chordae ad parametri authenticas rationem habendae sunt. Modus propositus permittit ut vulnerabilitates cognoscas in codice qui scripto (XSS) vel SQL substitutione ducunt.

Accedit, notari potest beginning alpha probatio novorum PHP 8.0 rami. Emissio horarium diei 26 Novembris est. In novo genere desiderantur sequentia; innovationsUt:

  • inclusion JIT compilerquorum usus fructibus meliorem efficiet.
  • Support unio typescollectiones definiens duorum vel plurium generum (exempli gratia: "munus publicum foo (Foo|Bar $input): int|natat;").
  • Support attributa (annotationes) quae permittunt te metadata (ut informationes type) ad classes ligandas sine syntaxi docblock utendo.
  • Syntax illi definitiones ordinis, sino te definitionem constructoris et proprietatum confundere.
  • Novum genus reditus - Vestibulum.
  • Novum genus - mixtaquae adhiberi potest ut munus recipiat diversorum generum parametri.
  • expressio mittent exceptiones tractare.
  • WeakMap ad res creandas, quae immolari possunt in collectione purgamentorum (exempli gratia, ad thesauros superfluos reponendos).
  • potestatem utens expressione ":: classis" pro obiectis (analogum vocationis get_class()).
  • potestatem definitiones in captura scandali exceptionum quae variabilibus non tenentur.
  • potestatem commate relicto post elementum ultimum in indice functionis parametri.
  • Novum interface Stringable ad recognoscendas quasvis chordae rationes vel notitias quae ad chordam converti possunt (pro qua methodus __toString() praesto est).
  • Nova pluma str_ continet (), analogum simplicis strophae ad determinandum eventum substringi, necnon functiones str_inatus_cum() et str_ends_cum() ad reprimendum par in principio et fine chordae.
  • Pluma added fdiv()quae facit operationem sine errore dividendo per nullam divisionem.
  • mutatus chorda conjunctio logicae. Verbi gratia: resonare "sum" . $a + $b' prius interpretatum est "resonare" ("sum:" . $a) + $b', et in PHP 8 agetur "echo" summa: ". ($a + $b)'.
  • constringantur arithmeticam recognitionem et operationes frenum, exempli gratia, expressiones "[] % [42]" et "$obiectum + 4" in errore provenient.
  • implemented stabilis algorithmus voluptua in quo ordo valorum identicorum per diversos currit conservatus.

Source: opennet.ru