Ve kterém roce vyšel PHP 7. Vyhlášení skalárních typů

Stojí za to přesunout na novou verzi PHP 7.0? - Určitě stojí, ani si nemyslíte!

V sedmé verzi je velmi mnoho inovací. Hlavní jsou:

  • phpng jádro je založeno na phpng. Nové jádro poskytuje zvýšení produktivitních míst od 40%;
  • zadejte náznaky a návratové hodnoty. Nyní, při deklaraci funkce pro každou proměnnou, můžete zadat svůj typ, stejně jako typ dat, která vrátí funkci. Dostupné typy: int, float, řetězec a bool;
  • komplexní srovnávací operátor a mnohem víc.

Některá rozšíření byla odstraněna v PHP 7:

  • mysql.

Již v PHP 5.6.x bylo použití těchto rozšíření nežádoucí. Místo "MySQL" použijte "PDO" a místo EREG → Preg.

Můžete se seznámit podrobněji s PHP 7 novinky na oficiální stránce.

Mám jít do php 7?

Na tento moment Nejjednodušší věc, kterou můžete udělat pro zvýšení výkonu webu, je jít do PHP 7.0.x. Rychlost zisk také závisí na tom, jak je váš projekt napsán. Pokud stále pochybujete, zobrazte některé srovnání:

Benchmark PHP 5,6 vs PHP 7 Pro Necto rámce (Zend Framework, Magento, Drupal, MediaWiki, WordPress, Larab, SugarCRM atd.):

Pro všechny rámce je růst produktivity významný. Podívejme se, jaký je tomu v případě funkcí a návrhů jádra:

Benchmark PHP 5,6 vs PHP 7 Pro funkce a návrhy jádra:

Pokud vás grafy přesvědčili, můžete se pokusit převést své stránky do nové verze PHP a zažít zvýšení reálného projektu.

Kolegové s elasticweb řekl, že před zahájením nového serveru s PHP 7 spustili velký státový projekt pracující na Larable 5. Byl to druh výkonu. nová verze PHP a server jako celek. Dříve byl tento projekt na serveru s PHP 5.6. Po přenosu stránek se stránka začala otevřít mnohem rychleji, zatímco využití zdrojů bylo polovodeno.

Pro přípravu přesunu do PHP 7 používali zprávu o záchraně PHP 7 Migrace (Mar). Většina populárního CMS / Framework již má kompatibilitu s PHP 7, takže hlavní úkol byl snížen na testování vlastních pluginů.

WordPress 4, Drupal 8/7 a nejnovější verze Joomla je připraven na PHP 7!

Ahoj!

3. prosince bylo vydání PHP 7. Byli jsme převedeni pro vás popis nových produktů z dokumentace stránky http://php.net/manual/en/migration70.new-features.php. To je první část.

Vyhlášení skalárních typů

Nyní se používají dva režimy konverze typů: implicitní konverze (donucovací) a explicitní (přísné).

Typy jsou k dispozici pro parametry:

  • struny (řetězec),
  • celá čísla (INT),
  • plovoucí společenství (float),
  • booleovské proměnné (Bool).

To doplňuje typ dat nastavený v PHP 5: názvy tříd, rozhraní, pole (pole) a volbou.

Výsledek:

Chcete-li povolit přísný režim typu, použijte směrnici o deklarování na začátku souboru:

Deklarovat (strict_types \u003d 1)

Režim typizace platí pro konkrétní soubor. Povolení přísné psaní ovlivňuje výstup skalárních hodnot, vratných hodnot, vestavěných funkcí PHP a funkcí rozšíření.

Definice typů vrácených hodnot

V PHP 7 bylo možné deklarovat typ návratové hodnoty. To přímo koreluje s novým režimem typu: S přísným psaní musí návratové hodnoty striktně odpovídat zadanýmu typu, jinak bude výjimka vyřazena TypeError..

Sada typů vrácených hodnot je stejná jako u argumentů.

Výsledek:

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

Operátor sjednocení s hodnotou null

Operátor sjednocení s null (??) je zadán ke zlepšení čitelnosti kódu v případě, kdy se obvykle používá ternární operátor a isset (). Provozovatel vrátí první operand, pokud je definován argument a není roven null a druhému operandu v jiných případech.

Operátor "kosmická loď"

Porovnejte dva výrazy, vracet -1, 0 a 1, když je první argument menší, rovný nebo více z druhé, resp. Srovnání se provádí pomocí obvyklých srovnávacích pravidel typu PHP.

jeden; // 0 echo 1<=> 2; // -1 echo 2<=> jeden; // 1 // plovoucí bod (float) echo 1.5<=> 1.5; // 0 echo 1.5<=> 2.5; // -1 echo 2.5<=> 1.5; // 1 // řádky echo "a"<=> "A"; // 0 echo "a"<=> "B"; // -1 echo "b"<=> "A"; // 1?\u003e

Definice konstantních polí definuje ()

Konstantní pole mohou být deklarovány pomocí definování (). V PHP 5.6 mohou být definovány pouze pomocí směrnice CONST.

Anonymní třídy

Podpora oznámení anonymních tříd s nová třída.. To lze použít k ozdobení jednorázových objektů bez psaní celé třídy.

záznamník; ) Veřejná funkce Setlogger (Logger $ Logger) ($ Toto-\u003e Logger \u003d $ Logger;)) $ app \u003d nová aplikace; $ App-\u003e setlogger (public Function log (řetězec $ msg) (echo $ msg)); Var_dump ($ app-\u003e getlogger ()); ? \u003e.

Výsledek:

Objekt ( [Chráněný emailem])#2 (0) {}

Unicode symboly útěk

Symboly Unicode jsou nastaveny pomocí hexadecimálního kódu v double-citací nebo řetězec definice herdoc-definice. Přidání jedné nebo více číslic "0" před povolením symbolu.

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

Výsledek:

ª ª // Stejný jako dříve, ale s volitelným vedoucím 0 "s 香

Uzavření :: Volání ()

Způsob uzávěrky :: Volání () je produktivnější způsob, jak dočasně vázat kontext objektu k uzavření a jeho volání.

x;); $ getx \u003d $ getxcb-\u003e bindto (nový a, "a"); // Intermediate uzavření echo $ getx (); // php 7+ $ getx \u003d funkce () (vrátit $ toto-\u003e x;); Echo $ getx-\u003e volání (nový a);

Výsledek:

Zbytek inovací jsou ve druhé části. Zůstaňte naladěni.

Jděte do PHP 7.0 nebo počkejte? Takže jsme si mysleli tak dlouho, vážil, předstíral. Včera však přišel okamžik, kdy bylo nutné rychle rozhodnout

Stalo se to, že kdokoli mistr, žádný sysadmin HyLoada, nechce. Portál se začal zpomalit od zátěže. Přicházejí návštěvníci, kteří zaplatili přístup k uzavřeným materiálům a jednoduše návštěvníkům, kteří jsou současně poštou 100k + k portálovým odběratelům, helpdeske není schopen pracovat administrativně s adminem a poskytovat pomoc lidem

V důsledku toho byl večer proveden s PHP 5.6 na PHP 7.0

Stručná vlastnosti serveru

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

Vzhledem k tomu, že je FreeBSD a udržujte zároveň více než jedna verze PHP není možná (ve skutečnosti je to možné, ale bude muset dostat to nahoru), downm byl jen 40 minut, což zaujalo demolici PHP 5.6 a instalovat PHP 7.0.

Mimochodem, stále máme server na Gentoo, který poskytuje příležitost. V současné době tam PHP 5.6, 7.0, 7.1. Ale to je slovo

A to je to, co jsme to udělali. Podívejme se na denní diagramy, kde včerejší den a vpravo

Co se nezměnilo

Co se změnilo

Co jsme se srazili s obtížemi

  • V aktuálním PHP 7.0 není modul memcache. Musel jsem si stáhnout přístav třetí strany
  • Žádný modul MySQL. To musíte být připraveni a předem předem předpokládat přechodný plán na MySQLI. Více nebo méně moderních rámců podporuje MySQLI
  • Pokud používáte PECL-PDFLIb, budete připraveni na to, co nebude fungovat. Používáme WKHTMLTOPDF.
  • Část portálu použitý MPDF. Nepracuje s PHP 7.0. Instalovaný čerstvý s skladatelem
  • Provedl kód refractingu světla

Výstup

Se stejným počtem návštěvníků portálu se zatížení na serveru dvakrát snížil

Alexander Black.

správce systému

Podle některých studií je na něm napsáno asi 80% všech míst. A není to všechno zvláštní, protože i takové sítě giganty jako V kontaktu s a Facebooks pomocí ní. O popularitě lze posuzovat, protože požadavek "" je požadován ve vyhledávačích mnohem častěji než jiné jazyky. Tak jeden požadavek hosting Perl. Pozdravit 150 – Výše uvedený hosting PHP.

Jazyk byl vytvořen v roce 1994 a byl původně soubor skriptů. Časem byly skripty přepracovány do tlumočníka na S.

Hlavní vlastnosti a funkce jazyka PHP:

  • schopnost pracovat s různými webovými servery ( IIS.);
  • snadnost učení a flexibility v práci;
  • podpora databází - , MSSQL, Oracle, postgre, mongodb a další;
  • pro populární OS existují vhodné PHP balíčky, tj můžete si vytvořit stránky;
  • kompatibilita s většinou hostingových služebposkytovány poskytovateli. Site můžete snadno umístit na PHP na každém hostování. Jak zajistit PHP na serveru? Naše rady.
  • pHP nemá stále a neustále se vyvíjí, což přitahuje vývojáře z celého světa.

Jaký druh verze php. Jsou v tuto chvíli relevantní?

Opětem je považováno za relevantní verze PHP 4 a 5. verze 4 má svou vlastní popularitu a slouží k psaní různých webových aplikací. PHP 5 má mnoho dalších funkcí, ale zase, není plně kompatibilní se čtvrtou verzí jazyka. proto některé programy (napsané v PHP 4) nebudou schopny pracovat v prostředí PHP 5. Jako další nástroje na jazyk jazyka jsou často používány moduly. Například speciální moduly byly vyvinuty pro práci s grafikou nebo moduly, které implementují interakce s různými databázemi.

Po vstupu do 5. verzi jazyka, všichni očekávali šestý. PHP 6 však nikdy nebylo schopno implementovat sám, kvůli problémům s podporou UNICOD, takže v roce 2010 byla přerušena vývoj a realizace této verze.

PHP 7 je nová verze s novými funkcemi.

Ne tak dávno, 3. prosince 2015Bylo vydáno nové vydání populárního programovacího jazyka -PHP 7.0.0. To dalo vývoji řady PHP 7. Jazyk se již podařilo dobýt své fanoušky pro dvacetiletou historii existence. Skriptovací jazyk všeobecného určení se používá k vytvoření různých webových aplikací, včetně zaplacených zápisů a volných CMS. Například Joomla!, Drupal, WordPress a TP.

Dále promluvte si o nových funkcích PHP 7 A my to zjistíme, proč ho vývojáři čekali tolik. Koneckonců, navzdory časté kritice tohoto jazyka, většina poskytovatelů hostingu podporuje, včetně nejnovějších verzí PHP. Jazyk je nejžádanější na kritériích použití. Nová verze je v podstatě experimentální a založená na phpng (další generaci PHP), je zásada zvyšující se produktivitou založen na snížení spotřeby paměti.

PHP 7 jazyk je navržen s přidáním nové verze motoru Zend. Pokud ho porovnáte s předchozí verzí 5.6 (z nichž nové vydání se objevilo v listopadu téhož roku), pak webové vývojáři jazyka především na vědomí zlepšené výkony nové technologie: PHP 7 zdvojnásobuje předchůdce.

Zvažte položky,jaká nová verze PHP nabízí :

  • Úplný podpora 64-bit systémy;
  • použití paměti je mnohem sníženo;
  • přidal funkčnost abstraktní syntaxe;
  • nejvíce smrtelných chyb se změní na výjimky;
  • zlepšení hierarchie výjimky;
  • náhodný generátor Čísla se stala bezpečnější;
  • anonymní třídy;
  • odstraněno zastaralé Sapis. SAPI / AOLSERVER, SAPI / Apache SAPI / ApACHE_HOOKS, SAPI / Apache2Filter, SAPI / Caudia, SAPI / Continuity, SAPI / ISAPI, SAPI / MILTER, SAPI / NSAPI, SAPI / PhTTPD, SAPI / NSAPI, SAPI / Pttpd, SAPI / PI3WEB, SAPI / ROXEN, SAPI / thttpd , SAPI / TUX, SAPI / WebJames, EXT / MSSQL a EXT / SYBASE_CT);
  • přestat podporovat návrhář ve stylu PHP 4, ve kterém název konstruktoru se shoduje s názvem třídy;
  • vytvořený závěsnost :: Volání ();
  • kromě toho je OPENSSL podpora rozšíření TLS ALPN (Vyjednávání protokolu aplikačního vrstvy), které odpovídají protokolům úrovně aplikace, které se používají k zajištění bezpečného připojení. Aplikován v SPDY a http / 2;
  • provozovatel odborů s null ?? ;
  • poskytování seskupení definic v prohlášení o použití (například použití doktrinecommoncollectionsExpr (srovnání, hodnota, composiexprese);) a mnohem více.

Stáhnout a seznámit se se všemi výhodami nové verze PHP oficiální stránkaTaké zde si můžete stáhnout průvodce migraci. Nová verze - ne jen další verze PHPa začátek vývoje nového způsobu programovacích jazyků. Chcete-li ho spustit, trvalo dva roky horského vývoje, který pomohl vytvořit vylepšený produkt.

Pokud hledáte spolehlivou 7. verzi , Kontaktujte nás do společnosti Hyper hostitele.naše virtuální hosting servery podporují PHP 7. Doufáme, že přijdou nové příležitosti k vašemu vkusu. My, zase rádi, že vám pomohou!

7435 krát. 1 Dnes zobrazeno jednou (a)

PHP je programovací jazyk, který se používá především ve vývoji webových stránek, zpravidla v zadní části. PHP má dostatečně dlouhou historii - jeho první verze se objevila před více než 20 lety, v roce 1995. Během této doby bylo vydáno 7 verzí PHP, poslední z nich se objevil v prosinci 2015. O ní a bude diskutován v tomto článku.

Vydání PHP 7.0 se stalo průlomem, jak to bylo založeno na phpng - experimentální a aktivně rozvíjet projekt PHP, jehož název je dešifrován jako "PHP další generace" - "příští generace PHP". Tato technologie by mohla být použita v předchozích verzích PHP, avšak byla v PHP 7, byla zavedena jako základní. Když je vyvinut, cíl byl nastaven na zvýšení výkonnosti PHP, ale neztratil kompatibilitu.

Zend Engine.

PHP 7 je založen na třetí verzi motoru Zend, ve kterém byl vyvinut projekt PHPNG.

Inovace

Především inovace v PHP 7 ovlivnily nejdůležitější aplikace parametrů - tento výkon a spotřeba paměti.

Hlavní změna, ve které je primárně uvedeno v konverzaci o PHP 7, to zlepšení výkonu: PHP 7 indikátorů jsou aproximovány indikátory HHVM (vyvinuté facebookovým systémem, což vám umožní několikrát urychlit transformaci PHP kódu). Není to poslední důvod, že to byl skutečnost, že spoluzakladatelem technologií Zend (společností PHP jader) Zeev Surcki považuje HHVM jako jeden z konkurentů Zend. A přední vývojář společnosti PHP 7 Zend Technologies a PhPng Autor Dmitry Stans zajišťuje, že rozdíl v výkonu PHP 5.0 a PHP 7 na syntetickém testovacím bench.php je 14krát. V praxi je většina uživatelů nakloněna věřit, že PHP 7 je asi dvakrát rychlejší než předchozí verze.

HHVM používá tzv. JIT (Just-in-time) kompilaci pro konverzi kódu - navzdory skutečnosti, že JIT v 7 PHP verzi se neobjeví, PHP 7 podporuje lepší migraci, která vám umožní zlepšit výkonnost . Je to nová úroveň produktivity Dmitrij zásobníku zdůrazňuje jako hlavní rys PHP 7.

Zlepšení výkonnosti se podařilo dosáhnout a díky tomu, že kompilátor nyní generuje více velkolepějšího a krátkého bajtu.

V současné době je nesmírně důležité přemýšlet o uživatelích nejen ve stacionárních, ale i mobilních zařízeních, takže vývojáři PHP 7 mají zlepšené výkony motoru a sníženou spotřebu paměti a také přidal schopnost používat nativní místní úložiště. Kromě toho vám PHP 7 umožňuje provádět asynchronní úkoly.

Mimochodem, vývoj vzal v úvahu populární trendy při snižování spotřeby zdrojů planety, takže PHP 7 má schopnost zvládnout více provozuPomocí všech stejných zdrojů serverů.

Nové vlastnosti

V PHP 7 existuje mnoho nových funkcí, z nichž každá dělá rozvoj pohodlnější a jednoduché. Dále se můžete seznámit s některými z nich.

  • Dvě nové výjimky (Výjimka a chyba) - Pokud v předchozích verzích PHP nebylo možné zvládnout fatální chyby, pak v novém vydání, akce vedoucí k tomuto vydání výjimek, tj. Dokončení skriptu se nestane.
  • Anonymní třídy - Nyní PHP 7 podporuje tento typ tříd, které se často používají v C ++ a Java provádět funkce zpětného volání. Tyto třídy se používají hlavně k vytvoření jednoduchých položek:

setlogger (nový logger ()); // php 7+ kód $ util-\u003e setlogger (nová třída ($ msg) (echo $ msg;)));

Anonymní třídy mohou být investovány, ale nebudou k dispozici chráněné nebo soukromé vlastnosti vnější třídy.

  • Schopnost označit skalární typy (Typ skalárového typu) - V předchozích verzích bylo možné označit typ přijatých hodnot; Nyní můžete také indikovat skalární typy:

Řádky (`string`), celé (` int`), čísla (`float`), balvany (` bool`).

Tato inovace je zaměřena na usnadnění psaní kódu a zlepšit jeho čitelnost. Ale použití těchto hodnot jako názvy tříd je kategoricky zakázáno, protože To může vést k kritickým chybám.

  • Zkrácený design použití - příležitost se objevila v PHP 7 kombinovat prohlášení o používání skupinTo bude nepochybně pozitivně ovlivněno jak rychlostí, tak vnímání kódu:
  • Nové operátory Null uzavírání operátora (??) a Kombinovaný srovnávací operátor. (<=>Také je známý jako operátor kosmických lodí) - tyto dva nové operátory, které některé odkazují na syntaktický cukr pomáhají napsat více stručný a srozumitelný kód.

Null Coolescing Provozovatel je operátor Unie, která kontroluje, zda proměnná existuje a vrátí svou hodnotu (nebo výchozí hodnotu):

$ Akce \u003d $ _Post ["Akce"] ?? "index";

Kombinovaný srovnávací operátor je srovnávací operátor, který je užitečný pro použití v aplikacích zpětného volání pro Usort (). Porovnává dvě hodnoty a v závislosti na výsledku, vrátí -1, 0 nebo 1:

Funkce Order_Func ($ A, $ b) (vrátit $ a<=> $ B; )

Prioritou této operace se rovná prioritám jiných srovnávacích operací a nemůže být spojena s předchozí výzvou, protože Jedná se o non-abassiative operátor.

  • Funkce Assert ()- V PHP 7 je tato funkce zpracována zvláštním způsobem, aby vyloučila režii; Můžete jej použít pro ladění a dále zakázat.
  • Filtrace unswiderize () - Tato inovace zajistí bezpečnost serializace objektů. Vývojář bude schopen určit, které kurzy by měly být léčeny, a které nejsou.
  • Zastoupení celá čísla ve formě 64-bit V PHP 7 pro Windows X64: nyní PHP podporuje řetězce delší než 231 bajtů v 64bitových sestavách.
  • Delegace generátorů - s pomocí pomoci Komplexní generátor lze rozdělit na několik menších. Stejně jako některé další inovace je tato inovace zaměřena na psaní čistšího a pohodlného kódu pro opětovné použití.
  • Vzhled nové třídy Intlchar. - Zvyšuje funkci knihovny pro lokalizaci mezinárodních komponent pro aplikace Unicode a má metody třídy a konfontantování pro práci s Unicode.
  • Schopnost definovat pole jako konstantní hodnoty, které jsou deklarovány prostřednictvím definování ().
  • Schopnost přiřadit vyhrazenou klíčová slova k názvům metod.
  • Vznik nového identifikátoru jednoduchých hodnot php_int_min.

Pokud jde o staré funkce, část nejvíce nevyhnutých funkcí byla vyloučena: například značky ASP a skriptů byly odstraněny, stejně jako regulární výrazy kompatibilní s POSIX a rozšíření Ext / MySQL.

PHP a webové servery

PHP je široce používán při psaní různých webových aplikací, protože Tento jazyk je kompatibilní s různými webovými servery (Apache, Nginx, IIS), databáze (MySQL, postgre, mongodb atd.), Stejně jako operační systémy.
Tradičně inovace se proto dotkly nejen jazykem jako celku, ale také o jeho stranách, které jsou spojeny s hostováním.

Především byl představen PHP 7 Abstraktní syntaxe stromu (AST) - abstraktní syntaxe, který je mezilehlým odkazem v procesu kompilace. Je na tomto modelu, že syntaxe analyzátor je nyní založen. Díky tomu můžete nyní vytvořit produktivnější operační kód.

Další inovace je Jednotná proměnná syntaxe - Univerzální syntaxe pro proměnné. To umožňuje na jedné straně vyřešit některé z nesrovnalostí, které jsou spojeny s výpočtem proměnných hodnot, ale na druhé straně vytváří potřebu přepsat některé zřídka používané části kódu.

Vraťme se opět na zvýšení výkonu PHP 7: Je příznivé přemýšlet o funkčnosti všech hostitelů, protože budou moci zvýšit počet jejich uživatelů bez zvýšení počtu serverů nebo jiných vylepšení.

Jedním z důvodů pro zlepšení výkonu je optimalizace struktury interních datCo výrazně zlepšilo proces práce s pamětí.

Není možné říci o některých otázkách zpětné kompatibility, které mohou nastat při přepnutí na PHP 7. Například není možné použít několik výchozích výrazů v přepínači, protože Jinak uvidíte chybu. Obecně však tyto problémy jsou bezvýznamné proti pozadí těchto nových funkcí, které PHP 7 nabízí.

Výstup

PHP 7 Uvolnění není jen vydáním nové verze PHP, ale určitým výchozím bodem pro následující PHP verze nové generace. Výsledky množství inovací PHP 7 se staly čistší, pohodlným a srozumitelným kódem, výrazně zvýšenou produktivitou a mnohem více, které můžete samostatně vyhodnocovat aktualizací virtuálního serveru do sedmé verzi PHP.