U kojoj se godini php 7 izašao. Najava skalarnih vrsta

Da li se vrijedi preseliti u novu verziju PHP 7.0? - Definitivno stoji, ne mislite ni - idi!

U sedmoj verziji ima prilično puno inovacija. Glavni su:

  • phpng kernel se zasniva na phpng-u. Novi kernel daje povećanje web lokacija produktivnosti sa 40%;
  • tip saznača i povratne vrijednosti. Sada, prilikom proglašenja funkcije za svaku varijablu, možete odrediti svoj tip, kao i vrstu podataka koji će vratiti funkciju. Dostupne vrste: int, float, string i bool;
  • kombinovani operator upoređivanja i mnogo više.

Neke su proširenja uklonjena u PHP 7:

  • mysql

Već u PHP 5.6.x, upotreba ovih proširenja bila je nepoželjna. Umjesto "MySQL", koristite "PDO", a umjesto Ereg → Preg.

Možete se više upoznati sa PHP 7 novitetima na službenoj stranici.

Trebam li ići na php 7?

Na ovaj trenutak Najjednostavnija stvar koju možete učiniti da biste povećali performanse stranice je prelazak na PHP 7.0.x. Dobitak brzine ovisi i o tome kako se vaš projekt napisan. Ako i dalje sumnjate, pokažite neke usporedbe:

Benchmark PHP 5.6 vs PHP 7 Za Necto Frameworks (ZEND Framework, Magento, Drupal, MediaWiki, Wordpress, Laravel, SugarCRM, itd.):

Za sve okvire, rast produktivnosti je značajan. Da vidimo šta je slučaj sa funkcijama i dizajnima kernela:

Benchmark PHP 5.6 vs PHP 7 Za funkcije i dizajne kernela:

Ako vas grafovi uvjeravali, možete pokušati prenijeti svoju web lokaciju na novu verziju PHP-a i iskusiti porast stvarnog projekta.

Kolege s elastikom, rekli su da su prije pokretanja novog poslužitelja sa PHP 7 pokrenuli veliki državni projekt koji rade na Laravelu 5. Bio je to vrsta testa performansi. nova verzija PHP i server u cjelini. Prije toga, ovaj projekt je bio na poslužitelju sa PHP 5.6. Nakon prijenosa stranice, stranica je počela biti otvorena mnogo brže, dok je korištenje resursa prepolovljeno.

Da biste pripremili prelazak na PHP 7, koristili su izvještaj Asistent migracije PHP 7 (MAR). Većina popularnih CMS / okvira već ima kompatibilnost sa PHP 7, tako da je glavni zadatak smanjen na testiranje prilagođenih dodataka.

WordPress 4, Drupal 8/7 i najnoviju verziju Joomla je spremna za PHP 7!

Zdravo!

3. decembra bio je PHP 7 izdanje. Premješteni smo za vaš opis novih proizvoda iz stranice dokumentacije http:///php.net/manual/hr/migration70.new-features.php. Ovo je prvi deo.

Najava skalarnih vrsta

Sada se koriste dva načina pretvorbe modova: implicitna pretvorba (prisilna) i eksplicitna (stroga).

Vrste su dostupne za parametre:

  • Žice (string),
  • iNTEGERI (INT),
  • plutajuća pričest (pluta),
  • boolejske varijable (bool).

Ovo nadopunjuje vrstu podataka postavljen u PHP 5: Imena klasa, sučeljima, nizovima (niz) i pozive.

Rezultat:

Da biste omogućili strogi način tipkanja, upotrijebite Direkturu na početku datoteke:

Izjaviti (strog_types \u003d 1)

Način tipizacije odnosi se na određenu datoteku. Omogućavanje stroge tipki utječe na izlaz skalarnih vrijednosti, povratne vrijednosti, ugrađene funkcije PHP-a i funkcija proširenja.

Definicija vrsta vraćenih vrijednosti

U PHP 7 postalo je moguće izjaviti vrstu povratne vrijednosti. Ovo direktno u korelira s novim načinom tipkanja: Uz strogi tipkanje, povratne vrijednosti moraju strogo podudarati s navedenim tipom, u protivnom će se izuzetak odbaciti TypeError.

Skup vrsta vraćenih vrijednosti isti je kao i za argumente.

Rezultat:

Array (\u003d\u003e 6 \u003d\u003e 15 \u003d\u003e 24)

Operator za ujedinjenje s null vrijednošću

Uništitelj za ujedinjenje s null (??) upisuje se za poboljšanje čitljivosti koda u slučaju kada se obično koristi ternarni operater i iset (). Operator vraća prvi operand ako je argument definiran i nije jednak nulu i drugi operand u bilo kojim drugim slučajevima.

Operator "Svemirski brod"

Usporedite dva izraza, vraćajući -1, 0 i 1, kada je prvi argument manji, jednak ili više drugog, respektivno. Poređenje se vrši korištenjem uobičajenih pravila usporedbe PHP tipova.

jedan; // 0 echo 1<=> 2; // -1 Echo 2<=> jedan; // 1 // plutajuća tačka (plov) odjek 1.5<=> 1.5; // 0 Echo 1.5<=> 2.5; // -1 Echo 2.5<=> 1.5; // 1 // redove eho "a"<=> "A"; // 0 Echo "A"<=> "B"; // -1 Echo "B"<=> "A"; // 1?\u003e

Definicija konstantnih nizova define ()

Konstantni nizovi mogu se proglasiti korištenjem definea (). U PHP 5.6 mogli su se definirati samo pomoću Direktive Cons Const.

Anonimne klase

Podrška za najavu anonimnih časova sa nova klasa.. To se može koristiti za ukrašavanje objekata za jednokratnu upotrebu bez pisanja čitave klase.

drvosječa; ) Javna funkcija Setlogger (Logger $ Logger) ($ this-\u003e logger \u003d $ logger;) $ app \u003d Nova aplikacija; $ App-\u003e Setlogger (dnevnik javnih funkcija (string $ MSG) (Echo $ MSG)); Var_dump ($ app-\u003e getlogger ()); ?\u003e.

Rezultat:

Objekt ( [Zaštićen e-poštom])#2 (0) {}

Unicode simboli pobjeći

Unicode simboli postavljaju heksadecimalni kod u dvostrukim navodnicima ili nizu Herdoc definicije. Dodavanje jedne ili više cifara "0" prije dozvoljenog simbola.

Echo "\\ u (aa)"; Echo "\\ u (0000aa)"; Echo "\\ u (9999)";

Rezultat:

ª ª // isto kao i prije, ali s opcionalnim vodećim 0 "s 香

Zatvaranje :: Poziv ()

Metoda zatvaranja :: Poziv () je produktivniji način privremeno povezati kontekst objekta za zatvaranje i njegov poziv.

x;); $ getx \u003d $ getxcb-\u003e bindto (novi A, "A"); // posredni zatvarač od eho $ getx (); // php 7+ $ getx \u003d funkcija () (povratak $ this-\u003e x;); Echo $ getx-\u003e poziv (novi a);

Rezultat:

Ostatak inovacija su u drugom dijelu. Ostanite podešeni.

Idite na PHP 7.0 ili pričekajte? Tako smo toliko dugo mislili, vagali, pretvarali se. Međutim, juče su došli u trenutku kada je bilo potrebno brzo donijeti odluku

Dogodilo se da nečiji master majstor, nema Sysadmin Hyoada ne želi. Portal je počeo usporiti sa tereta. Dolazi posjetitelji koji su platili pristupu zatvorenim materijalima i jednostavno posjetitelji koji istovremeno slati 100k + portalnim pretplatnicima, Helpdeske nije u stanju da se adekvatno ne može raditi sa administratorom i pružanje pomoći ljudima

Kao rezultat toga, večer je izvedena sa PHP 5.6 na PHP 7.0

Kratke karakteristike servera

  • OS: FreeBSD.
  • RAM: 5GB
  • CPU: Xeon E5335 2.00GHz * 4 (kerneli)

Budući da je FreeBSD i držite istovremeno više od jedne php verzije nije moguće (u stvari je moguće, ali morat će ga dobiti gore), downmy je bio samo 40 minuta koji je uzeo rušenje PHP 5.6 i instalirati PHP 7.0

Uzgred, još uvijek imamo server na Gentoo-u, koji pruža priliku. Trenutno je PHP 5.6, 7.0, 7.1. Ali ovo je riječ

I to smo i uradili. Pogledajmo dnevne karte u kojima je jučerašnji dan, i s desne strane danas

Što se nije promijenilo

Šta se promijenilo

Ono što smo se sudarili sa poteškoćama

  • U trenutnom PHP 7.0 nema memcache modula. Morao sam preuzeti luku treće strane
  • Nema modula mysql. Na ovo morate biti spremni i unaprijed da biste predviđeni tranzicijski plan Mysqli. Više ili više modernih okvira podržava Mysqli
  • Ako koristite Pecl-PDFLIB, bit ćete spremni za ono što neće raditi. Koristimo wkhtmltopdf.
  • Dio portala koristi MPDF. Ne radi sa PHP 7.0. Instaliran svježi sa kompozitorom
  • Sproveo šifru za refaktor lakih

Izlaz

Sa istim brojem posjetitelja portala, teret na poslužitelju pao je dva puta

Alexander crna

administrator sistema

Prema nekim studijama, na njemu se napisano oko 80% svih lokacija. I nije sve čudno, jer čak i takvi mrežni divovi kao U kontaktu sa i Facebookstvoreni su uz pomoć toga. O popularnosti se može ocjenjivati \u200b\u200bi jer se zahtjev "" traži u pretraživačima mnogo češće od ostalih jezika. Dakle, jedan zahtjev hosting perl. Pozdravlja 150 – Gore spomenuto hosting PHP.

Jezik je nastao 1994. godine i prvobitno je bio skup skripti. S vremenom su skripte preuređene prevodiocu na S.

Glavne karakteristike i karakteristike PHP jezika:

  • sposobnost rada sa raznim web serverima ( IIS.);
  • jednostavnost učenja i fleksibilnosti u radu;
  • podrška za baze podataka - , MSSQL, Oracle, Postgre, Mongodb i drugi;
  • za popularni OS postoje odgovarajući PHP paketi, tj možete kreirati web lokacije;
  • kompatibilnost s većinom usluga hostingapružaju pružaoci usluga. Možete lako postaviti web mjesto napisano na PHP na bilo kojem hostingu. Kako osigurati PHP na serveru? Naš savjet.
  • pHP ne stoji i dalje i stalno se razvija, što privlači programere iz cijelog svijeta.

Koja vrsta verzija PHP. Trenutno su relevantni?

U redu, smatra se relevantnim verzijama PHP 4 i 5. Verzija 4 ima svoju popularnost i koristi se za pisanje različitih web aplikacija. PHP 5 ima mnogo dodatnih funkcija, ali zauzvrat, nije u potpunosti kompatibilan sa četvrtom verzijom jezika. stoga neki programi (napisani u PHP 4) neće moći raditi u okolini PHP 5. Kako su dodatni alati jezika jezika često korišteni moduli. Na primjer, razvijeni su posebni moduli za rad s grafikom ili modulima koji implementiraju interakcije s različitim bazama podataka.

Nakon ulaska u petu verziju jezika, svi su očekivali šesti. Ali PHP 6 nikada nije bio u stanju da primenjuje sebe, zbog problema sa podrškom UNICOD, tako da su u 2010. godini razvoj i implementacija ove verzije prekinuta.

PHP 7 je nova verzija sa novim funkcijama.

Ne tako davno, 3. decembra 2015, Objavljeno je novo izdanje popularnog programskog jezika -PHP 7.0.0 To je dalo razvoj serije PHP 7. Jezik je već uspio osvojiti svoje navijače za dvadeset godina staru povijesti postojanja. Jezik skripta opće namjene koristi se za stvaranje različitih web aplikacija, uključujući pisanje plaćenog i besplatnog CMS-a. Na primjer, Joomla!, Drupal, Wordpress i TP.

Dalje razgovarajte o novim PHP 7 funkcijama I mi ćemo to shvatiti zašto su ga programeri toliko čekali. Uostalom, uprkos čestim kritikama ovog jezika, većina hosting pružatelja podrške ga podržavaju, uključujući najnovije php verzije. Jezik je najtraženiji od kriterija za upotrebu. Nova verzija je u osnovi eksperimentalna i zasnovana na PHPNG-u (sljedeća php generacija), princip povećanja produktivnosti temelji se na smanjenju potrošnje memorije.

PHP 7 Jezik dizajniran je uz dodavanje nove verzije za ZEND motor. Ako ga usporedite s prethodnom verzijom od 5.6 (novo izdanje koje se pojavilo u novembru iste godine), zatim web programeri jezika prvenstveno primjećuju poboljšane performanse nove tehnologije: PHP 7 udvostručuje predecesov komad.

Razmislite o predmetima,koja je nova verzija PHP ponuda :

  • pun podržite 64-bitni sistemi;
  • upotreba memorije mnogo je smanjena;
  • dodano funkcionalnost apstraktne sintakse;
  • većina fatalnih grešaka transformišu se u izuzeće;
  • poboljšana hijerarhija iznimka;
  • slučajni generator Brojevi su postali sigurniji;
  • anonimne klase;
  • uklonjen zastarjeli SAPIS Sapi / aolserver, sapihe / apache2filter, sapi / apache2filter, sapi / coudium, sapi / kontinuitet, sapi / isapi, sapi / nsapi, sapi / phttpd, sapi / pi3web, sapi / roxen, sapi / thttpd , Sapi / tux, sapi / webjames, ext / mssql i ext / sybase_ct);
  • zaustavite podržavanje dizajnera u stilu PHP 4, u kojem se ime konstruktora poklapa sa nazivom klase;
  • stvoren zatvaranje metode :: Poziv ();
  • pored toga, to postoji podrška TLS Extension ALPN (Pregovarač za protokol na aplikaciji) da odgovaraju protokolima na nivou aplikacije koji se koriste za osiguranje sigurne veze. Primjenjuje se u SPDY i HTTP / 2;
  • operator sindikata sa null ?? ;
  • pružanje grupiranja definicija u Izjavu o korištenju (na primjer, koristite DoctrineCommonCollectionSexPR (usporedba, vrijednost, kompozitet);) i još mnogo toga.

Preuzmite i upoznajte se sa svim prednostima nove PHP verzije na službena stranicaTakođe možete preuzeti vodič za migracije. Novo izdanje - ne samo sljedeća verzija PHP-ai početak razvoja novog načina na programskim jezicima. Da biste ga pokrenuli, trebalo je dvije godine revnoj zbirki, što je pomoglo u stvaranju poboljšanog proizvoda.

Ako tražite pouzdanu 7tu verziju , Kontaktirajte nas u kompaniju Hyper domaćin.naši virtualni hosting poslužitelji podržavaju PHP 7. Nadamo se da će nove mogućnosti doći po vašem ukusu. Mi ćemo zauzvrat rado pomoći!

7435 puta 1 danas se gledao jednom (a)

PHP je programski jezik koji se uglavnom koristi u web razvoju, po pravilu, u pozadinskom dijelu. PHP ima dovoljno dugu istoriju - njegova prva verzija pojavila se prije više od 20 godina, 1995. godine. Za to vrijeme izdato je 7 php verzija, od kojih se posljednji put pojavio u decembru 2015. godine. O njoj će se raspravljati u ovom članku.

Izdanje PHP 7.0 postalo je proboj, jer je zasnovan na eksperimentalnom i aktivnom razvoju PHP projekta, čiji se naziv dešifrira kao "PHP sljedeće generacije" - "PHP sljedeće generacije". Ova se tehnologija može koristiti u prethodnim verzijama PHP-a, međutim, bila je u PHP 7, uvedena je kao temeljna. Kada se razvije, cilj je bio postavljen za povećanje performansi PHP-a, ali ne i gubitka kompatibilnosti.

Zend motor.

PHP 7 zasnovan je na trećoj verziji Zend motora u kojem je razvijen projekt PHPNG.

Inovacije

Prije svega, inovacije u PHP 7 utjecale su na najvažnije primjene parametara - ovu izvedbu i potrošnju memorije.

Glavna promjena u kojoj se prvenstveno spominje u razgovoru o PHP 7, ovo poboljšanje performansi: PHP 7 pokazatelji su približni indikatorima HHVM-a (razvijeni od strane Facebook sistema koji vam omogućava da nekoliko puta ubrzate transformaciju PHP koda). Nije posljednji razlog za to činjenica da suosnivač Zend tehnologija (PHP kernel kompanije) Zeev Suraski smatra da je HHVM kao jedan od konkurenata za ZEND. I vodeći programer kompanije PHP 7 Zend Technologies i PHPNG autor Dmitrij Stans osigurava da je razlika u performansama PHP 5.0 i PHP 7 na sintetičkom ispitnom klubu. U praksi je većina korisnika sklona da vjeruje da je PHP 7 otprilike dva puta brže od prethodne verzije.

HHVM koristi takozvani klipnja (samo u vreme) za konverziju koda - uprkos činjenici da se JIT u verziji od 7 php nije pojavio, PHP 7 podržava bolju migraciju, što vam omogućava da povremeno poboljšate performanse . To je novi nivo produktivnosti Dmitrijsko stack naglašava kao glavna karakteristika PHP 7.

Unapređenje performansi uspjela je postići i zahvaljujući činjenici da prevodilac sada generira spektakularniji i kratki bajtni kod.

Danas je izuzetno važno razmišljati o korisnicima ne samo u stacionarnim, već i mobilnim uređajima, tako da su programeri PHP-a 7 poboljšali performanse motora i smanjenu potrošnju memorije, a također je dodao mogućnost korištenja domaćeg lokalnog prostora za pohranu. Pored toga, PHP 7 omogućava vam da izvršite asinhrone zadatke.

Usput, razvoj je uzeo u obzir popularne trendove u smanjenju potrošnje resursa planete, pa Php 7 ima sposobnost rješavanja više prometaKoristeći sve iste resurse poslužitelja.

Nove funkcije

U PHP 7 postoje mnoge nove funkcije, od kojih svaka čini razvoj ugodnije i jednostavnije. Dalje se možete upoznati sa nekim od njih.

  • Dva nova iznimka (Izuzetak i greška) - Ako je u prethodnim verziji PHP-a bilo nemoguće podnijeti kobne greške, a zatim u novom izdanju, akcija koja dovodi do ovim Emitiranim iznimkama, odnosno, završetak skripte neće se dogoditi.
  • Anonimne klase - Sada PHP 7 podržava ovu vrstu klasa, koji se često koristi u C ++ i Javi za obavljanje funkcija povratnog poziva. Ove klase se uglavnom koriste za stvaranje jednostavnih predmeta:

setlogger (novi zapisnik ()); // php 7+ kod $ util-\u003e setlogger (nova klasa ($ msg) (eho $ msg;));

Anonimne klase mogu se uložiti, ali neće biti dostupne zaštićene ili privatne svojstva vanjske klase.

  • Sposobnost da se naznače scalar tipovi (Savjeti skalarnog tipa) - u prethodnim verzijama bilo je moguće naznačiti vrstu primljenih vrijednosti; Sada možete navesti i skalarne tipove:

Redovi (`string`), cijela (` int`), brojevi (`float`), balvani (` bool`).

Ova inovacija ima za cilj olakšavanje pisanja Kodeksa i poboljšati njegovu čitljivost. Ali upotreba tih vrijednosti kao imena nastave kategorički je zabranjena, jer To može dovesti do kritičnih grešaka.

  • Skraćeni dizajn upotrebe - prilika se pojavila u PHP 7 kombinirajte deklaraciju o upotrebi grupaTo će nesumnjivo pozitivno utjecati i na brzinama i na percepciji koda:
  • Novi operateri Null koalizirani operater (??) i Kombinovani operator upoređivanja. (<=>Takođe, poznat je kao operator svemirske brodove) - ta dva nova operatera, koji se neki odnose na sintaktički šećer pomažu u pisanju sažetih i razumljivih koda.

Null Coalescing operater je operater sindikata koji provjerava da li varijabla postoji i vraća svoju vrijednost (ili zadanu vrijednost):

$ Action \u003d $ _post ["akcija"] ?? "Indeks";

Kombinovani operator upoređivanja je operater upoređivanja koji je koristan za upotrebu u funkcijama povratnih poziva za USTORT (). To uspoređuje dvije vrijednosti i, ovisno o rezultatu, vraća -1, 0 ili 1:

Funkcija naručite_func ($ a, $ b) (povratak $ a<=> $ B; )

Prioritet ove operacije jednak je prioritetima drugih usporednih operacija, a ne može se povezati s prethodnim izazovom, jer Ovo je ne-abasocijativni operater.

  • Funkcija Assert ()- u PHP 7 ova se funkcija obrađuje na poseban način da se isključi nad glavom; Možete ga koristiti za uklanjanje pogrešaka i dodatno onemogućiti.
  • Filtracija neprekidno () - Ova inovacija će osigurati sigurnost serializacije objekata. Programer će moći odrediti koje klase treba tretirati, a koje nisu.
  • Reprezentacija cijeli brojevi u obliku 64-bitnog U PHP 7 za Windows X64: sada PHP podržava žice duže od 231 bajta u 64-bitnim sklopovima.
  • Delegacija generatora - uz pomoć Kompleksni generator može se podijeliti u nekoliko manjih. Kao i neke druge inovacije, ova inovacija ima za cilj pisanje čistije i praktičnog koda za ponovnu upotrebu.
  • Izgled nove klase Intlchar. - Povećava značajku biblioteke da lokalizira međunarodne komponente za Unicode aplikacije i ima metode klase i povećanje za rad sa Unicodeom.
  • Sposobnost definiranja niza kao konstantnih vrijednosti koje se deklariraju putem definiranja ().
  • Sposobnost za dodjeljivanje rezerviranih ključnih riječi na imena metoda.
  • Pojava novog identifikatora jednostavnih PHP_int_min vrijednosti.

Što se tiče starih funkcija, deo najzanimljivijih funkcija je isključen: Na primjer, uklonjeni su ASP i skripte oznake, kao i redoviti izrazi kompatibilni sa Posix i proširenje Ext / MySQL.

PHP i web poslužitelji

PHP se široko koristi prilikom pisanja raznih web aplikacija, jer Ovaj je jezik kompatibilan sa različitim web poslužiteljima (Apache, Nginx, IIS), bazama podataka (MySQL, Postgre, Mongodb itd.), Kao i operativni sistemi.
Stoga su tradicionalno inovacije dodirnuli ne samo jezikom u cjelini, već i oni njegove stranke koje su povezane sa hostingom.

Prije svega, PHP 7 je uveden Sažetak sintakse stablo (AST) - apstraktna sintaksa, koja je intermedijarna veza u procesu kompilacije. Na ovom je modelu u osnovi sintaksenog analizatora. Zahvaljujući tome, sada možete stvoriti produktivniji operativni kod.

Još jedna inovacija je Jedinstvena varijabilna sintaksa - Univerzalna sintaksa za varijable. To omogućava, s jedne strane, riješiti neke nedosljednosti koje su povezane s izračunavanjem promjenjivih vrijednosti, ali s druge strane, stvara potrebu za prepisivanjem nekih retko korištenih dijelova koda.

Ponovo se vratimo na povećanje PHP 7 performansi: Povoljan je da se odražava na funkcionalnosti svih hostinga, jer će moći povećati broj svojih korisnika bez povećanja broja servera ili drugih poboljšanja.

Jedan od razloga za poboljšanje performansi je optimizacija strukture internih podatakaOno što je uvelike poboljšalo proces rada sa sjećanjem.

Nemoguće je ne reći o nekim pitanjima kompatibilnosti unazad koja se mogu pojaviti prilikom prelaska na PHP 7. Na primjer, nije moguće koristiti nekoliko zadanih izraza u prekidaču, jer U suprotnom, vidjet ćete grešku. Međutim, općenito su ovi problemi neznatni na pozadini tih novih funkcija koje PHP 7 ponude.

Izlaz

PHP 7 izdanje nije samo oslobađanje nove PHP verzije, već određeno polazište za sljedeće PHP verzije nove generacije. Rezultati mnoštva PHP 7 inovacija postali su čistiji, praktični i razumljivi kod, značajno povećana produktivnost i još mnogo toga što možete samostalno procijeniti ažuriranjem virtualnog servera na sedmu verziju PHP-a.