PHP

мова праграмавання

PHP (англ.: PHP: Hypertext Preprocessor — прэпрацэсар гіпертэксту) — скрыптавая мова праграмавання[4] агульнага прызначэння, якая інтэнсіўна ўжываецца для распрацоўкі вэб-праграм. Цяпер падтрымліваецца пераважнай большасцю хостынг-правайдэраў і з’яўляецца адным з лідараў сярод моў праграмавання, якія ўжываюцца для стварэння дынамічных вэбсайтаў.[5]

PHP
Клас мовы мультыпарадыгменная (аб'ектная, працэдурная)
З’явілася ў 8 чэрвеня 1995[1][2]
Аўтар(ы) Расмус Лердорф
Пашырэнне файлаў php, phar
Тыпізацыя даных дынамічная, слабая
Зведала ўплыў Perl, C++, C, Java
Ліцэнзія PHP License[d][3]
Сайт php.net (англ.)

Гісторыя РНР

правіць

З’яўленне

правіць

Пачынаецца гісторыя з 1995 года, калі незалежны праграміст Расмус Лердорф (Rasmus Lerdorf) напісаў сцэнарый Perl/CGI для падліку колькасці карыстальнікаў і наведвальнікаў сайта. Яго сцэнарый вырашыў дзве праблемы: рэгістрацыю дадзеных карыстальніка і вывад колькасці наведвальнікаў на вэб-старонцы. Развіццё WWW яшчэ толькі пачыналася, ніякіх спецыяльных сродкаў для вырашэння гэтых праблем не было, і да аўтара прыйшло шмат роспытаў. З’явіліся інструкцыі, называемыя Personal Home Page (РНР) альбо Hypertext Processor (гіпертэкставы працэсар).

Распрацоўка

правіць
 
Расмус Лердорф, стваральнік PHP

Вялікі поспех інструкцый Лердорфа паспрыяў буйнейшай распрацоўцы РНР. Каб дабіцца пастаўленай мэты, Лердорф вырашыў у далейшых распрацоўках перайсці з Perl на С. У хуткім часе з’явілася РНР 2.0, альбо PHP-FI (Personal Home Page — Form Interpretator). У абнаўленні з PHP да PHP 2.0 прымалі ўдзел праграмісты з усяго свету.

Распаўсюджанне

правіць

Новая версія РНР карысталася вялікай папулярнасцю, і ў хуткім часе ўзнікла асноўная каманда распрацоўшчыкаў. Яны захавалі пачатковую канцэпцыю магчымасці карыстання PHP у HTML і перапісалі нанава механізм лексічнага аналізу, што прывяло да з’яўлення РНР 3.0. Да моманту выхада версіі 3.0 у 1997 г. звыш 50 тыс. карыстальнікаў ва ўсім свеце прымянялі РНР для паляпшэння сваіх вэб-старонак.

Пераіменаванне

правіць

У 1997 годзе было вырашана, што скарачэнне РНР павінна абазначаць не «Personal Home page», а «РНР Hypertext Processor».

1 000 000 карыстальнікаў

правіць

На працягу двух гадоў працягвалася вялікае развіццё РНР. У мову дадавалася шмат новых функцый, а колькасць карыстальнікаў хутка расла. На пачатку 1999 года служба Netcraft ([1] Архівавана 30 красавіка 2013.) абвясціла аб тым, што, па мінімальным падлікам, колькасць карыстальнікаў РНР пераўзыйшла 1 000 000, у выніку чаго РНР стала адной з самых папулярных сцэнарных моў у свеце.

На пачатку 1999 года было абвешчана пра выхад неўзабаве РНР 4.0. Хаця адным з мацнейшых бакоў РНР была эфектыўнасць выканання сцэнарыяў, пры пачатковых распрацоўках не разлічвалася, што на базе РНР будуць будавацца вялікія праграмы. Па гэтай прычыне была пачата праца над больш устойлівым механізмам лексічнага аналізу, болей вядомым пад назвай Zend (http://www.zend.com). Праца ішла хутка і завершана 22 мая 2000 года выпускам РНР 4.0.

Пятая версія PHP была выпушчана распрацоўнікамі 13 ліпеня 2004 года. Змены ўключаюць абнаўленне ядра Zend (Zend Engine 2), што значна павялічыла эфектыўнасць інтэрпрэтатара. Уведзена падтрымка мовы разметкі XML. Цалкам перапрацаваны функцыі AAП, якія сталі шмат у чым падобныя да мадэлі, якая ўжываецца Java. У прыватнасці, уведзены дэструктар, адкрытыя, закрытыя і абароненыя члены і метады, канечныя члены і метады, інтэрфейсы і кланаванне аб’ектаў. Новаўвядзенні, аднак, былі зроблены з разлікам захаваць найбольшую сумяшчальнасць з кодам на папярэдніх версіях мовы. На цяперашні момант апошняй стабільнай галінкай з’яўляецца PHP 5.6.

Шостая версія PHP знаходзілася ў стадыі[6] распрацоўкі з кастрычніка 2006 года. У ёй ужо было зроблена мноства новаўвядзенняў, як, напрыклад, выключэнне з ядра рэгулярных выразаў POSIX і «доўгіх» суперглабальных масіваў, выдаленне дырэктыў safe_mode, magic_quotes_gpc і register_globals канфігурацыйнага файлу php.ini. Асноўныя намаганні былі сканцэнтраваны на падтрымцы Юнікода. Аднак у сакавіку 2010 года распрацоўка PHP6 была прызнана беспэрспектыўнай[7] з-за цяжкасцей з падтрымкай Юнікода. Зыходны код PHP6 перамешчаны на галіну, а асноўнай лініяй распрацоўкі стала версія 5.4.

3 снежня 2015 года было абвешчана пра выхад PHP версіі 7.0.0.[8]

Новая версія грунтуецца на эксперыментальнай галіне PHP, якая першапачаткова называлася phpng (PHP Next Generation — наступнае пакаленне), і распрацоўвалася з упорам на павелічэнне прадукцыйнасці і памяншэнне спажывання памяці. У новай версіі дададзена магчымасць ўказваць тып вярталых з функцыі дадзеных, быў дададзены кантроль перадаваных тыпаў для скалярных дадзеных, а таксама новыя аператары.

13 чэрвеня 2019 года выйшла версія PHP 7.4. У ядро былі дададзены тыпізаваныя ўласцівасці і стрэлачныя функцыі, а таксама абмежаваная каварыянтнасць тыпу вяртання і контраварыянтнасць тыпу аргумента[9].

PHP версіі 8.0 была выпушчана 26 лістапада 2020 года[10]. Галоўнымі новаўвядзеннямі сталі[11]: падтрымка union-тыпаў[12], JIT-кампіляцыя[13] і атрыбуты (таксама вядомыя як анатацыі), як альтэрнатыва канструкцыі switch быў дададзены выраз match, таксама быў дададзены новы аператар Nullsafe.

Прыклады карыстання PHP

правіць

«Hello world!»

правіць
<html>

<title><? print «Hello world!»; ?></title>

</html>

У дадзеным выпадку на загалоўку старонкі будзе напісана «Hello world!».

«РНР Recipes»

правіць
<?

// Даць значэнні некалькім пераменным

$site_title = «РНР Recipes»;

$bg_color = «white»;

$user_name = «Chef Luigi»;

?>

<html>

<head>

<title><? print $site_title; ?></title>

</head>

<body bgcolor="<? print $bg color; ?>« >

<?

// Вывесці запршэнне ў выглядзе назвы, даты і імя карыстальніка. print „

РНР Recipes | .dateC'F d. )." <br /> Greetings, $user_name!

";

?>

</body>

</html>

У дадзеным выпадку на загалоўку старонкі будзе напісана «РНР Recipes», колер фона будзе вызначацца пераменнай «$bg color», а імя карыстальніка — «$user_name».

Папярэджанне: Дадзеныя вышэй прыклады не будуць працаваць, калі ў вас не ўсталяваны PHP і Apache.

Зноскі

правіць
  1. Google Groups Праверана 11 снежня 2018.
  2. PHP: History of PHP - Manual Праверана 25 жніўня 2016.
  3. http://php.net/license/ Праверана 25 жніўня 2016.
  4. http://php.net/manual/en/preface.php
  5. https://www.tiobe.com/tiobe-index//
  6. http://php.net/manual-lookup.php?pattern=%7Escoates%2Funicode%2Frender_func_data.php&lang=en&scope=404quickref
  7. https://www.amiro.ru/blog/tech/how-was-php6-died
  8. http://php.net/archive/2015.php#id2015-12-03-1
  9. PHP: Новые возможности — Manual. Архівавана з першакрыніцы 2 мая 2020. Праверана 2 мая 2020.
  10. PHP: News Archive — 2020. Архівавана з першакрыніцы 13 кастрычніка 2020. Праверана 29 лістапада 2020.
  11. What’s new in PHP 8 — stitcher.io. Архівавана з першакрыніцы 19 мая 2020. Праверана 3 мая 2020.
  12. PHP: rfc: union_types_v2. Архівавана з першакрыніцы 1 красавіка 2020. Праверана 3 мая 2020.
  13. PHP: rfc: jit. Архівавана з першакрыніцы 18 мая 2020. Праверана 3 мая 2020.

Спасылкі

правіць