Serbestberdana PHPStan 1.0, analîzerek statîk ji bo koda PHP-ê

Piştî şeş salên pêşkeftinê, yekem serbestberdana aram a analîzera statîk PHPStan 1.0 pêk hat, ku dihêle hûn xeletiyên di koda PHP-ê de bêyî darvekirin û karanîna ceribandinên yekîneyê bibînin. Koda projeyê bi PHP-ê tê nivîsandin û di bin lîsansa MIT-ê de tê belavkirin.

Analîzator 10 astên kontrolê peyda dike, ku tê de her astek paşîn kapasîteyên ya berê berfireh dike û kontrolên hişktir peyda dike:

  • Kontrolên bingehîn, diyarkirina çînên nenas, fonksiyon û rêbazan ($this), guhêrbarên nediyar, û derbaskirina hejmarek xelet a argumanan.
  • Bi __call û __get re guhêrbarên belkî nediyar, rêbazên sêrbaz û taybetmendiyên çînên nenas nas dikin.
  • Tespîtkirina rêbazên nenas di hemû biwêjan de, ne bi bangên bi rêya $this. Kontrolkirina PHPDocs.
  • Kontrolkirina celebên vegerê û veqetandina celebên taybetmendiyê.
  • Nasnameya bingehîn a koda "mirî" (qet nayê gotin). Mînaka bangên ku her gav derew vedigerin, blokên "din" ên ku qet naqedin û piştî vegerê kodê nas bikin.
  • Kontrolkirina celebên argumanan ji rêbaz û fonksiyonan re derbas bûne.
  • Hişyarî li ser wendakirina şîroveyên agahdariya cureyê.
  • Hişyarî li ser celebên yekîtiyê yên nerast ên ku berhevokên du an bêtir celeb diyar dikin.
  • Hişyarî li ser awayên bangkirinê û gihîştina taybetmendiyên bi celebên "nullable".
  • Kontrolkirina karanîna celebê "tevlihev".

    Nimûneyên pirsgirêkên bingehîn ên naskirî:

    • Hebûna çînên ku di mînak, catch, tîpan û avahîyên zimanên din de têne bikar anîn.
    • Hebûn û hebûna rêbaz û fonksiyonên tê gotin, û hem jî hejmara argumanên derbasbûyî.
    • Kontrol kirin ku rêbaz daneyan bi heman celebê ku di vegotina vegerê de hatî destnîşan kirin vedigerîne.
    • Hebûn û dîtina taybetmendiyên ku têne gihîştin, û kontrolkirina celebên daneya diyarkirî û rastîn ên ku di taybetmendiyan de têne bikar anîn.
    • Hejmara parametreyên ku ji bo bangên sprintf/printf di bloka formatkirina rêzê de derbas bûne rast e.
    • Hebûna guhêrbaran ku blokên ku ji hêla operatorên şax û lûpkan ve têne çêkirin têne hesibandin.
    • Tîpên bêkêr (mînak: "(string) 'foo'") û ceribandinên hişk ("===" û "!==") li ser daneyên bi celeb û operandên cihêreng ên ku her gav xelet vedigerin.

    Nûvekirinên sereke di PHPStan 1.0 de:

    • Asta kontrolê ya "9" hatî bicîh kirin, ku karanîna celebê "tevlihev" kontrol dike, ku ji bo organîzekirina wergirtina fonksiyonê ya parametreyên bi celebên cihêreng hatî armanc kirin. Asta neh karanîna neewle yên "tevlihev" nas dike, wek mînak derbaskirina nirxên celebê "tevlihev" ji celebek din re, gazîkirina rêbazên celebê "tevlihev" û gihîştina taybetmendiyên wê ji ber ku dibe ku ew nebin.
    • Bi karanîna şîroveyên @phpstan-pure û @phpstan-impure ve kontrol bikin ka nirxên vegerê ji bo bangên fonksiyonên yeksan yek in.
    • Analîzkirina di try-catch-paşîn de bi karanîna şiroveyên @throws ava dike.
    • Naskirina taybetmendiyên hundurîn (taybet), rêbaz û sabitên diyarkirî lê nehatine bikar anîn.
    • Derbaskirina bangên nelihev li fonksiyonên array ên wekî array_map û usort.
    • Vekolîna tîpê ji bo şîroveyên tîpên wenda.
    • Daxuyaniyên celebê yên ku bi PHPDocs re hevaheng in hatine çêkirin, rê dide ku celebên ji peyamên xeletiyê di PHPDocs de werin bikar anîn.

    Source: opennet.ru

  • Add a comment