История PHP
PHP/FI
[править | править код]В 1994 году датский программист (ныне живущий в Канаде) Расмус Лердорф (Rasmus Lerdorf) создал набор CGI-скриптов на языке программирования C[1] для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная домашняя страница), но более часто упоминалось название "PHP Tools". Вскоре функциональности перестало хватать, и Расмус переписал PHP Tools, создав более крупную и богатую реализацию.
В июне 1995 года Расмус открыл исходный код PHP Tools общественности[2], что позволило разработчикам использовать его по своему усмотрению. Это также дало возможность пользователям исправлять ошибки в коде и улучшать его.
В 1997 году после длительного бета-тестирования вышла вторая версия обработчика, написанного на C — PHP/FI 2.0. Её использовали около 1 % (приблизительно 50 тысяч) всех интернет-доменов мира.[3]
PHP 3
[править | править код]Версия PHP 3.0 подверглась значительной переработке, определившей современный облик и стиль языка программирования. В 1997 году два израильских программиста, Энди Гутманс (Andi Gutmans) и Зеев Сураски (Zeev Suraski), разработчики из израильского технологического института, расположенного в израильском городе Хайфе, полностью переписали код интерпретатора. PHP/FI 2.0 был сочтён ими непригодным для разработки приложения электронной коммерции, над которым они в то время работали. Для совместной работы над PHP 3.0 с помощью базы разработчиков PHP/FI 2.0 Энди, Расмус и Зеев решили объединиться и объявить PHP 3.0 официальным преемником PHP/FI, разработка же PHP/FI была практически полностью прекращена. После 9 месяцев публичного тестирования PHP 3.0 был официально выпущен в июне 1998 года.[3]
Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра дополнительными модулями. Впоследствии интерфейс написания расширений привлёк к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количеством баз данных, протоколов, поддерживать большое число API. Большое количество разработчиков привело к быстрому развитию языка и стремительному росту его популярности.
Абсолютно новый язык программирования получил новое имя. Разработчики отказались от дополнения о персональном использовании, которое имелось в аббревиатуре PHP/FI и язык был переименован в PHP.
К концу 1998 года PHP использовался десятками тысяч пользователей. Сотни тысяч веб-сайтов сообщали об использовании языка программирования PHP. В то время PHP 3.0 был установлен приблизительно на 10 % веб-серверов Интернета.
PHP 4
[править | править код]К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Расширения дали PHP 3.0 возможность успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно.
Новый движок, названный Zend Engine (от имён создателей, Зива и Энди, также основателей Zend Technologies), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принёсший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.
Прекращение выпуска обновлений PHP 4 было запланировано на конец 2007 года[4]. Однако вплоть до 8 августа 2008 года выпускались критические обновления безопасности. С 9 августа 2008 года всякая поддержка версии PHP 4.x была прекращена.
PHP 5
[править | править код]Пятая версия PHP была выпущена разработчиками 13 июля 2004 года. Изменения включают обновление ядра Zend (Zend Engine 2), что существенно увеличило эффективность интерпретатора. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. В частности, введён деструктор, открытые, закрытые и защищённые члены и методы, окончательные члены и методы, интерфейсы и клонирование объектов. Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка. На данный момент последней стабильной веткой является PHP 5.6, которая содержит ряд изменений и дополнений:
- Увеличена скорость работы, примерно на 10-20 %
- Введено пространство имён
- Позднее статическое связывание и специальный метод __callStatic()
- Лямбда-функции и замыкания
- Добавление расширений: intl, phar, fileinfo и sqlite3
- Опциональный сборщик мусора
- Был написан драйвер MySQLnd для самой популярной у PHP разработчиков базы данных MySQL. С появлением нативного драйвера скорость работы с Mysql значительно увеличилась, также новый драйвер доступен уже в стандартной сборке(ранее это было невозможно из-за лицензии, связанной с libmysql)
- Прекращение поддержки версий операционной системы до Windows 2000 (Windows 98, NT4, и.т.д.)
- Новые синтаксические конструкции, такие как NOWDOC, ограниченный GOTO, короткий вид тернарного оператора «?:»
и другое.
PHP 6
[править | править код]Шестая версия PHP находилась в стадии[5] разработки с октября 2006 года. В ней уже было сделано[6][7] множество нововведений, как, например, исключение из ядра регулярных выражений POSIX и «длинных» суперглобальных массивов, удаление директив safe_mode, magic_quotes_gpc и register_globals из конфигурационного файла php.ini. Основные усилия были сосредоточены на поддержке Юникода.[8]. Однако в марте 2010 года разработка PHP6 была признана бесперспективной[9] из-за сложностей с поддержкой Юникода. Исходный код PHP6 перемещён на ветвь, а основной линией разработки стала версия 5.4.
PHP 7
[править | править код]В 2014 году было проведено голосование, по результатам которого следующая версия получила название PHP 7. Выход новой версии планировался в середине октября 2015 года. В марте 2015 года Zend представили инфографику, в которой описаны основные нововведения PHP 7[источник не указан 746 дней].
3 декабря 2015 года было объявлено о выходе PHP версии 7.0.0[источник не указан 746 дней].
Новая версия основывается на экспериментальной ветви PHP, которая изначально называлась phpng (PHP Next Generation — следующее поколение) и разрабатывалась с упором на увеличение производительности и уменьшение потребления памяти. В новой версии добавлена возможность указывать тип возвращаемых из функции данных, добавлен контроль передаваемых типов для данных, а также новые операторы[источник не указан 746 дней].
PHP 8
[править | править код]PHP 8.0.0 был выпущен 26 ноября 2020 года.
Предыстория версии PHP 8 началась в 2015 году, когда был выпущен PHP 7.0. Это было крупное обновление, которое принесло множество улучшений и новых возможностей, в том числе значительное увеличение производительности и внедрение строгой типизации.
В 2016 году были выпущены две небольшие версии - PHP 7.1 и PHP 7.2, которые добавили новые возможности, такие как Nullable типы и функции согласования типов.
В 2018 году была выпущена PHP 7.3, которая принесла ряд новых функций, таких как поддержка групповых захватов в регулярных выражениях и функции `array_key_first()` и `array_key_last()`.
В 2019 году была выпущена PHP 7.4, которая добавила новые функции, такие как Typed Properties 2.0, Arrow Functions 2.0 и Weak References.
В 2020 году была выпущена PHP 8.0, которая является крупным обновлением и включает множество новых функций и улучшений, таких как JIT-компиляция, Union Types, Named Arguments, Attributes и другие.
В 2023 году была выпущена PHP 8.2, которая представила новые функции, такие как readonly свойства, поддержка распаковки массивов со строковыми ключами, тип never, а также улучшения производительности и управления памятью.
Таким образом, PHP 8.3 - это последняя версия PHP на данный момент.
Примечания
[править | править код]- ↑ Rasmus Lerdorf. I wonder why people keep writing that PHP was ever written in Perl. It never was. #php (англ.). @rasmus (20 июля 2012). Дата обращения: 28 ноября 2020. Архивировано 3 января 2018 года.
- ↑ Rasmus Lerdorf. Announce: Personal Home Page Tools (PHP Tools) (англ.) (8 июля 1995). Дата обращения: 28 ноября 2020. Архивировано 3 сентября 2006 года.
- ↑ 1 2 PHP: History of PHP — Manual (англ.). Дата обращения: 28 ноября 2020. Архивировано 1 февраля 2009 года.
- ↑ Прекращение выпуска версий PHP 4.x Архивная копия от 1 июля 2009 на Wayback Machine (англ.)
- ↑ Количество переписанных функций с поддержкой Юникода . Дата обращения: 7 декабря 2009. Архивировано 19 января 2007 года.
- ↑ Файл news.txt из дистрибутива PHP 6 Архивная копия от 12 декабря 2008 на Wayback Machine
- ↑ Текущий список выполненных и невыполненных работ по PHP 6 . Дата обращения: 7 декабря 2009. Архивировано 18 апреля 2008 года.
- ↑ Полный список изменений, которые были запланированы в декабре 2005 года . Дата обращения: 7 декабря 2009. Архивировано 12 августа 2006 года.
- ↑ Как умер PHP6 . Дата обращения: 3 декабря 2011. Архивировано 13 октября 2011 года.