PHP 8.2 alfa testimine on alanud

Esitleti PHP 8.2 programmeerimiskeele uue haru esimest alfavÀljalaset. VÀljalaskmine on kavandatud 24. novembrile. Peamised uuendused, mis on PHP 8.2-s juba testimiseks saadaval vÔi kavandatud juurutamiseks:

  • Lisatud on eraldi tĂŒĂŒbid “false” ja “null”, mida saab kasutada nĂ€iteks vea lĂ”petamise lipu vĂ”i tĂŒhja vÀÀrtuse tagastamiseks. Varem sai "false" ja "null" kasutada ainult koos teiste tĂŒĂŒpidega (nĂ€iteks "string|false"), kuid nĂŒĂŒd saab neid kasutada eraldi: function alwaysFalse(): false { return false; }
  • Lisati vĂ”imalus mĂ€rkida klass kirjutuskaitstuks. Selliste klasside omadusi saab mÀÀrata ainult ĂŒks kord, pĂ€rast seda ei saa neid muuta. Varem sai ĂŒksikuid klassi atribuute mĂ€rkida kirjutuskaitstuks, kuid nĂŒĂŒd saate selle reĆŸiimi lubada kĂ”igi klasside atribuutide jaoks korraga. Lipu "kirjutuskaitstud" mÀÀramine klassi tasemel blokeerib ka atribuutide dĂŒnaamilise lisamise klassi. readonly class Postitus { public function __construct( public string $pealkiri, public Autor $autor, ) {} } $post = new Postitus(/* 
 */); $post->unknown = 'vale'; // Viga: dĂŒnaamilist atribuuti ei saa luua Post::$unknown
  • VĂ”imalus klassis dĂŒnaamiliselt luua atribuute (nagu ĂŒlaltoodud nĂ€ites "post->unknown") on aegunud. PHP 9.0 puhul pĂ”hjustab klassis algselt mÀÀratlemata omadustele juurdepÀÀs tĂ”rketeate (ErrorException). Klassid, mis pakuvad atribuutide loomiseks __get ja __set meetodeid vĂ”i stdClassi dĂŒnaamilisi atribuute, jĂ€tkavad tööd muudatusteta, arendaja kaitsmiseks peidetud vigade eest toetatakse ainult kaudset tööd olematute atribuutidega. Vana koodi töö sĂ€ilitamiseks pakutakse vĂ€lja atribuut “#[AllowDynamicProperties]”, mis vĂ”imaldab kasutada dĂŒnaamilisi omadusi.
  • Annab vĂ”imaluse filtreerida tundlikke parameetreid virnajĂ€lje vĂ€ljundis vea ajal. Teatud teabe vĂ€ljalĂ”ikamine vĂ”ib osutuda vajalikuks, kui teave ilmnevate vigade kohta saadetakse automaatselt kolmandate osapoolte teenustele, mis jĂ€lgivad probleeme ja teavitavad neist arendajaid. NĂ€iteks saate jĂ€tta jĂ€lgimisest vĂ€lja parameetrid, mis sisaldavad kasutajanimesid, paroole ja keskkonnamuutujaid. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Error'); } test('foo', 'parool', 'baz'); Saatuslik viga: tabamata Erand: viga failis test.php: 8 Pinu jĂ€lg: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} visatud faili test.php real 8
  • VĂ”imalus asendada muutujate vÀÀrtusi stringideks, kasutades avaldisi "${var}" ja ${(var)}, on aegunud. Tavaliselt kasutatavate asenduste "{$var}" ja "$var" tugi on sĂ€ilinud. NĂ€iteks: "Tere, {$maailm}"; OK "Tere $maailm"; OK "Tere ${world}"; Aegunud: ${} kasutamine stringides on aegunud
  • Aegunud osaliselt toetatud helistatavad failid, mida saab kutsuda "call_user_func($callable)" kaudu, kuid mis ei toeta helistamist kujul "$callable()": "self::method" "parent::method" "static" ::method " ["ise", "meetod"] ["vanem", "meetod"] ["staatiline", "meetod"] ["Foo", "Bar::method"] [uus Foo, "Bar: :method" ]
  • Rakendatud lokaadist sĂ”ltumatu juhtumite teisendamine. Funktsioonid nagu strtolower() ja strtoupper() teisendavad nĂŒĂŒd alati ASCII-vahemikus olevate mĂ€rkide suur- ja vĂ€iketĂ€hti, nagu oleksid need seatud lokaadile "C".

Allikas: opennet.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster