Lẹhin ọdun kan ti idagbasoke, itusilẹ ti ede siseto PHP 8.4 ti gbekalẹ. Ẹka tuntun pẹlu lẹsẹsẹ awọn ẹya tuntun, ati ọpọlọpọ awọn ayipada ti o fọ ibamu.
Awọn ayipada bọtini ni PHP 8.4:
- Imuse tuntun ti olupilẹṣẹ JIT, ti a ṣe lori ipilẹ ti Ilana IR, ti dabaa. Iyatọ bọtini ni pe JIT atijọ ti ipilẹṣẹ taara awọn ilana ẹrọ ti o da lori bytecode ati lilo awọn ẹhin oriṣiriṣi fun x86_64 ati AArch64 faaji, lakoko ti JIT tuntun nlo ẹhin ẹyọkan fun gbogbo awọn ayaworan ati ṣe ipilẹṣẹ aṣoju agbedemeji (IR), eyiti o jẹ siwaju iṣapeye ati iyipada si awọn ilana ẹrọ fun iru ẹrọ ibi-afẹde ti o fẹ.
- Atilẹyin ti a ṣafikun fun sisopọ awọn ohun-ini ohun-ini, gbigba ọ laaye lati ṣafikun ọgbọn afikun ti o ṣiṣẹ nigbati o yipada tabi wọle si awọn ohun-ini ti ohun kan, ti a ṣe laisi kikọlu kika ati kọ awọn iṣẹ ṣiṣe ni lilo awọn iṣẹ ti o wọpọ __get ati __set, ati laisi ṣiṣẹda awọn ọna abuda afikun. Lilo awọn olutọju ohun-ini jẹ ki o ṣee ṣe lati dinku iye koodu ni pataki ati rọrun isọdọtun ti ihuwasi ti ṣiṣẹ pẹlu awọn ohun-ini, o ṣeun si abuda oluṣakoso tirẹ si ohun-ini kọọkan. Olumulo kilasi {okun ti gbogbo eniyan $name {ṣeto {ti o ba jẹ (strlen($iye) === 0) {ju New ValueError("Orukọ gbọdọ jẹ ti ko ṣofo"); } $this->orukọ = $iye; } } iṣẹ́ gbogbo ènìyàn __construct(okun $name) {$this->orukọ = $orukọ; }}
- O gba ọ laaye lati tọka awọn itọkasi si awọn ọna ninu ikole “tuntun” laisi awọn biraketi ti o ya sọtọ, ie. dipo "$name = (titun MyClass ())-> Ọna ()" o le ni bayi pato "$name = MyClass tuntun () -> Ọna ()".
- Fi kun agbara lati asymmetrically šakoso awọn hihan ti ohun ini (gbangba, ikọkọ, ni idaabobo), lọtọ fun kikọ (ṣeto) ati kika (gba) mosi. Fun apẹẹrẹ: PhpVersion kilasi {okun ikọkọ(ṣeto) ti gbogbo eniyan $version = '8.4'; } $phpVersion = PhpVersion tuntun(); var_dump ($ phpVersion-> ẹya); // okun (3) "8.4" $ phpVersion-> version = 'PHP 8.3'; // aṣiṣe
- Ti pese atilẹyin boṣewa fun awọn ohun “ọlẹ”, eyiti o jẹ ipilẹṣẹ ni akoko lilo akọkọ.
- Dipo paramita gbogbogbo "opcache.jit_buffer_size", awọn paramita "opcache.jit" ati "opcache.jit_buffer_size" ni a dabaa lati ṣakoso olupilẹṣẹ JIT ati tunto iwọn ifipamọ JIT. Lati mu JIT kuro, o le pato "opcache.jit=disable" dipo "opcache.jit_buffer_size=0". Awọn ayipada ti ṣe lati dinku agbara iranti ati ilọsiwaju iṣẹ JIT ni awọn ipo kan.
- Ṣafikun “#[\ Deprecated]” abuda lati samisi awọn iṣẹ ti a ti parẹ, awọn kilasi ati awọn ọna. #[\Deprecated ("lo iṣẹ tuntun() dipo", niwon: "1.1")] iṣẹ oldFunction () {// ... }
- Kilasi \Dom\HTMLDocument ti jẹ imuse, ni atilẹyin itọka ti o pe fun isamisi HTML5.
- Iṣẹ ibeere_parse_body() ti a ṣafikun lati ṣe itupalẹ awọn ibeere HTTP pẹlu iru akoonu data apakan-pupọ/fọọmu (RFC1867).
- Awọn iṣẹ ti a ṣafikun array_find (), array_find_key (), array_any () ati array_all (). Awọn iṣẹ array_find () ati array_find_key () pada ipin akọkọ tabi bọtini ninu titobi fun eyiti ṣayẹwo ti a sọ pato nipasẹ iṣẹ-ipe-pada ti olumulo pato ṣiṣẹ. Awọn iṣẹ array_any () ati array_all (), ni ọna, da eyikeyi eroja ti o baamu pada ati gbogbo awọn eroja ti o baamu. Fun apẹẹrẹ, lati ṣe afihan nkan akọkọ ti aaye akọle rẹ tobi ju awọn kikọ 5, o le pato: $firstMatch = array_find( $posts, function (Post $post) {pada strlen($post->akọle)> 5;} ) ;
- Fi kun DateTime :: getMicrosecond () ati DateTimeImmutable :: setMicrosecond ($ microsecond) awọn ọna fun gbigba ati ṣeto akoko pẹlu microsecond konge, bi daradara bi DateTime :: ṣẹdaFromTimestamp () ọna.
- PDO (Awọn ohun elo data PHP), wiwo abọtẹlẹ fun ṣiṣẹ pẹlu awọn apoti isura data, ti ṣafikun agbara lati ṣẹda awọn parsers SQL ati awọn kilasi ni pato si awọn awakọ DBMS kan. Awọn ipin-ipin tuntun PdoDblib, PdoFirebird, PdoMySql, PdoOdbc ati PdoSqlite ti ni afikun.
- Awọn iṣẹ tuntun ti a ṣafikun mb_trim (), mb_ltrim (), mb_rtrim (), mb_ucfirst (), mb_lcfirst (), bcceil (), bcdivmod (), bcfloor () ati bcround (), pcntl_getcpu (), pcntl_getcpuaffinity (), pcntl_getqos_class () , pcntl_setns (), pcntl_waitid (), http_get_last_response_headers (), http_clear_last_response_headers (), fpow ()
- Awọn iṣẹ ijade ati ku ni a le pe ni bayi bi awọn iṣẹ ti o ni kikun ti o le kọja bi ariyanjiyan si awọn iṣẹ miiran. Ni iṣaaju, iṣẹ-ṣiṣe ti ijade () ati awọn iṣẹ ku () jẹ opin pupọ, nitori wọn jẹ awọn murasilẹ lori ijade ati awọn koko-ọrọ ku.
- A ti ṣafikun awọn ayipada lati jẹ ki o nira diẹ sii lati lo nilokulo ifipamọ lori awọn ailagbara, bakanna lati mu isọdi ti awọn orukọ faili ti o ṣẹda nipasẹ iṣẹ tempnam().
- Imukuro ihuwasi nipa eyiti awọn paramita iṣẹ pẹlu iye aiyipada ti asan ni a gba laaye laifọwọyi lati sọtọ awọn iye asan. Ni ibere fun iru awọn paramita lati gba awọn iye asan, itọkasi kedere ti ìpele “?” ni bayi nilo. Fun apẹẹrẹ, dipo “fifipamọ iṣẹ (Iwe $book = asan) {}” o yẹ ki o pato “fipamọ iṣẹ (? Iwe $book = asan) {}”.
- Awọn iduro E_STRICT, MYSQLI_REFRESH_*, awọn iṣẹ mysqli_ping (), mysqli_kill (), mysqli_refresh (), awọn ọna mysqli :: ping (), mysqli :: pa (), mysqli :: sọtun (), agbara lati lo "_ ”gẹgẹbi orukọ kilasi, diẹ ninu DOMDocument ati awọn ohun-ini DOMEntity. Ṣiṣatunṣe awọn aabọ kilasi GMP jẹ eewọ, fun eyiti a ti ṣeto koko “ipari” ni bayi.
Ni afikun, a le ṣe akiyesi itusilẹ ti olutupalẹ aimi PHPStan 2.0, eyiti o fun ọ laaye lati wa awọn aṣiṣe ni koodu PHP laisi ṣiṣe rẹ ati lilo awọn idanwo ẹyọkan. Oluyanju n pese awọn ipele 10, awọn agbegbe ti o bo gẹgẹbi idamo awọn oniyipada ti a ko ṣe alaye, awọn kilasi aimọ, awọn iṣẹ ati awọn ọna; ṣayẹwo awọn iru awọn ariyanjiyan ati awọn iye pada; lilo deede ti diẹ ninu awọn iru; definition ti kò ti a npe ni koodu. Koodu ise agbese ti kọ ni PHP ati pinpin labẹ iwe-aṣẹ MIT.
orisun: opennet.ru
