последняя стабильная версия php
PHP: Hypertext Preprocessor
PHP For Windows
This site is dedicated to supporting PHP on Microsoft Windows. It also supports ports of PHP extensions or features as well as providing special builds for the various Windows architectures.
If you like to build your own PHP binaries, instructions can be found on the Wiki.
PECL For Windows
PECL extensions for Windows is being worked on. Windows DLL can be downloaded right from the PECL website.
The PECL extension release and snapshot build directories are browsable directly.
Which version do I choose?
If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP.
Apache
Please use the Apache builds provided by Apache Lounge. They provide VC15 and VS16 builds of Apache for x86 and x64. We use their binaries to build the Apache SAPIs.
With Apache, using the apache2handler SAPI, you have to use the Thread Safe (TS) versions of PHP.
VC15 & VS16
More recent versions of PHP are built with VC15 or VS16 (Visual Studio 2017 or 2019 compiler respectively) and include improvements in performance and stability.
— The VC15 and VS16 builds require to have the Visual C++ Redistributable for Visual Studio 2015-2019 x64 or x86 installed
TS and NTS
TS refers to multithread capable builds. NTS refers to single thread only builds. Use case for TS binaries involves interaction with a multithreaded SAPI and PHP loaded as a module into a web server. For NTS binaries the widespread use case is interaction with a web server through the FastCGI protocol, utilizing no multithreading (but also for example CLI).
What is PGO?
Profile Guided Optimization is an optimization feature available in Microsoft’s Visual C++ compiler that allows you to optimize an output file based on profiling data collected during test runs of the application or module.
Links:
amd64 (x86_64) Builds
PHP 7 provides full 64-bit support. The x64 builds of PHP 7 support native 64-bit integers, LFS, 64-bit memory_limit and much more.
x64 builds are recommended (almost all Windows installations support x64).
Long and multibyte path
PHP 7.1+ supports long and UTF-8 paths. See the manual for details.
Archives
Past releases are available from our archives, older versions not found there can be found at the Museum.
Последняя стабильная версия php
Вместо аннотаций PHPDoc вы можете использовать структурные метаданные с нативным синтаксисом PHP.
Объявление свойств в конструкторе RFC Документация
Меньше шаблонного кода для определения и инициализации свойств.
Union types RFC Документация
new Number ( ‘NaN’ ); // Нет ошибки
new Number ( ‘NaN’ ); // TypeError
Вместо аннотаций PHPDoc для объединенных типов вы можете использовать объявления union type, которые проверяются во время выполнения.
Выражение Match RFC Документация
Новое выражение match похоже на оператор switch со следующими особенностями:
Оператор Nullsafe RFC
Вместо проверки на null вы можете использовать последовательность вызовов с новым оператором Nullsafe. Когда один из элементов в последовательности возвращает null, выполнение прерывается и вся последовательность возвращает null.
Улучшенное сравнение строк и чисел RFC
При сравнении с числовой строкой PHP 8 использует сравнение чисел. В противном случае число преобразуется в строку и используется сравнение строк.
Ошибки согласованности типов для встроенных функций RFC
strlen ([]); // Warning: strlen() expects parameter 1 to be string, array given
strlen ([]); // TypeError: strlen(): Argument #1 ($str) must be of type string, array given
Большинство внутренних функций теперь выбрасывают исключение Error, если при проверке параметра возникает ошибка.
Компиляция Just-In-Time
PHP 8 представляет два механизма JIT-компиляции. Трассировка JIT, наиболее перспективная из них, на синтетических бенчмарках показывает улучшение производительности примерно в 3 раза и в 1,5–2 раза на некоторых долго работающих приложениях. Стандартная производительность приложения находится на одном уровне с PHP 7.4.
Относительный вклад JIT в производительность PHP 8
Улучшения в системе типов и обработке ошибок
Прочие улучшения синтаксиса
Новые классы, интерфейсы и функции
Выше производительность, лучше синтаксис, надежнее система типов.
Для загрузки исходного кода PHP 8 посетите страницу downloads. Бинарные файлы Windows находятся на сайте PHP для Windows. Список изменений представлен в ChangeLog.
Руководство по миграции доступно в разделе документации. Пожалуйста, изучите его для получения подробного списка новых возможностей и обратно несовместимых изменений.
Версии PHP: зачем их обновлять и чем они различаются
Почти 80% всех существующих сайтов, по данным W3Techs, работают на базе языка программирования PHP. Значительную их часть составляют сайты, созданные с помощью WordPress и других популярных CMS. Однако, несмотря на такую распространнёность, не все владельцы сайтов знают о необходимости переходить с устаревших версий PHP на более актуальные. Что отражается на качестве работы сайтов.
Кратко о версиях PHP
Какие версии PHP считаются актуальными, а какие — устаревшими? Чтобы разобраться в этом, рассмотрим этапы жизненного цикла версий этого языка:
Релиз. Выпускается новая версия PHP, которая прошла все этапы предварительного тестирования и подходит для использования в «боевых условиях».
Активная поддержка. В течение двух лет после релиза версия продолжает совершенствоваться. Выходят регулярные обновления, вносятся корректировки и исправляются баги. Обеспечивается полная безопасность версии.
Минимальная поддержка. Ровно через два года после релиза работа по развитию версии прекращается. В течение следующего года происходят только критические обновления, касающиеся серьёзных угроз безопасности.
Завершение жизненного цикла. Через год критических обновлений защиты версия перестаёт поддерживаться полностью. Однако ей можно продолжать пользоваться, но уже на свой страх и риск.
На момент публикации этого материала продолжают поддерживаться три версии PHP:
7.4 (дата релиза — 28 ноября 2019 года, самая актуальная версия);
7.3 (дата релиза — 6 декабря 2018 года, активная поддержка подходит к концу);
7.2 (дата релиза — 30 ноября 2017, активно не поддерживается, важные обновления безопасности скоро перестанут выходить).
Версии 7.1, 7.0 и все версии PHP 5 больше не обновляются. А уже в конце 2020 года самой актуальной станет версия 8.0.
А что насчёт PHP 6? Если вы не знаете, почему шестые версии здесь не упоминаются, то сейчас поясним.
PHP 6: строили, строили, но не построили
На разработку версии 6.0 было потрачено немало времени. Предполагалось, что самым важным нововведением в ней станет поддержка символов Юникода, благодаря которой возможности языка были бы расширены. Однако разработчики PHP 6 столкнулись со множеством трудностей, что вынудило их постепенно отказаться сначала от внедрения Юникода, а затем и вообще от запуска версии 6.0.
Пока шла работа над PHP 6, на эту тему было выпущено немало статей и книг. И представление о PHP 6 как о версиях языка с внедрённым Юникодом уже успело устояться в IT-сообществе. Поэтому новому поколению языка, пришедшему на смену PHP 5, было решено присвоить номер 7.
PHP 7: обновление, которое ждали больше 10 лет
Первая версия PHP 7 была представлена ещё в конце 2015 года, но до сих пор почти половина сайтов в мире, по информации WTechs, не перешли на PHP 7 и остаются на PHP 5. Каких возможностей лишены те, кто всё ещё не обновился?
С заботой о пользователях мобильных гаджетов разработчики также поработали над исполнением движка и уменьшили потребление памяти при работе PHP. Также с помощью Abstract syntax tree (AST) операционный код стал более производительным. И в целом код на PHP 7 стал чище, понятнее и удобнее.
Помимо внедрения нововведений, в версии 7.0 изменили или вовсе убрали устаревшую и ненужную функциональность. С одной стороны, это несколько нарушило совместимость языка с ранее созданным и необновлённым ПО. Но с другой, принятые меры позволили сделать настоящий прорыв в развитии PHP.
PHP 8: взгляд в будущее
Версия 8.0 активно разрабатывается в данный момент, но о ней уже кое-что известно. Планируется, что в новейших версиях PHP будет генерироваться меньше кода. Для этого будет использоваться технология JIT (Just in Time). С её помощью при выполнении приложения весь код будет не компилироваться заново, а частично заимствоваться из уже скомпилированных версий.
Компиляции станет меньше и благодаря технологии FFI (Foreign Function Interface), которая упрощает вызов функций, написанных на разных компилируемых языках программирования. Благодаря JIT и FFI производительность PHP 8 должна ощутимо повыситься по сравнению с PHP 7.
Релиз первой альфа-версии 8.0 намечен на лето этого года. Затем традиционно будут представлены несколько альфа- и бета-версий, а также релизов-кандидатов, после чего 3 декабря 2020 года ожидается выпуск финального варианта.
Кратко об обновлении PHP
Какую версию PHP лучше всего использовать? Конечно же, самую актуальную на данный момент. Тогда вы всегда будете получать:
О работе с PHP на VPS мы пока говорить не будем, так как для этого нужен отдельный материал. Поэтому дальше мы дадим рекомендации пользователям виртуального и специализированного хостинга.
Узнайте, какая версия PHP используется на вашем сайте. Эта информация доступна в настройках веб-сервера: например, на хостинге «Джино» они расположены здесь). Владельцы сайтов на WordPress могут увидеть текущую версию PHP в панели администратора, в разделе Инструменты / Здоровье сайта / Информация. Также вы можете написать этот скрипт, разместить его в файлах сайта и обратиться к нему из браузера:
В результате будет показана информация о версии.
Если ваша текущая версия PHP не входит в число поддерживаемых, взвесьте все «за» и «против» перед обновлением. Ведь чем старее скрипты вашего сайта, тем сложнее может быть перейти на поддерживаемую версию PHP. Тем, кто готов обновиться, нужно сделать следующее:
Убедитесь, что у вас сохранена свежая резервная копия файлов сайта.
Проверьте совместимость используемого ПО, фреймворков, библиотек, плагинов с выбранной вами версией PHP. Если что-то из этого не совместимо с ней, убирайте и заменяйте на более современные аналоги.
Измените версию PHP на хостинге, через настройки сервера в контрольной панели или через запрос в техподдержку.
После обновления протестируйте все функции сайта, при тестировании проверяйте лог на предмет «Fatal error» и других ошибок, которых раньше не было. Если все функции работают, а на страницах сайта появляются предупреждения PHP — отключите отображение ошибок.
Если после обновления возникли серьёзные нарушения в работе сайта, верните старую версию PHP. Разберитесь в проблемах сами или обратитесь за помощью к специалистам.
Чтобы переход на новую версию PHP никогда не составлял большого труда, постоянно адаптируйте свой сайт под последнюю поддерживаемую версию языка. А также используйте регулярно обновляемые плагины и ПО, избавляясь от всего, что не обновлялось больше года и не подлежит использованию с актуальными версиями PHP.
Как обновить PHP сайта и зачем это нужно
Лучшее — враг хорошего? Мы рассмотрели, как обновить версию PHP, на которой работает ваш сайт, и для чего это нужно.
Актуальная версия PHP
Сейчас проходит бета-тестирование PHP 7.3 — последний релиз в этом семействе. Актуальной на сегодняшний момент считается 7.2, которая превосходит в скорости и функциональности все прошлые версии.
Вот неполный список возможностей PHP 7:
Как обновить PHP на Windows
Здесь все очень просто и прозаично:
Скачиваем последнюю версию PHP
Прописываем заново настройки в Apache и PHP.
Но прежде чем обновлять, нужно внимательно изучить раздел Appendices в документации к новой версии. В нем описывается устаревший функционал, который больше не применяется в языке. Новые версии не поддерживают старый код: особенно трудна миграция с пятой на седьмую, у которой очень слабая обратная совместимость.
Если разработчик использует неподдерживаемые функции, то кусок кода, в котором они есть, просто не заработает. Поэтому перед обновлением нужно серьезно проанализировать этот раздел и в соответствии с ним — свой код.
Зачем обновлять, если все работает
Резонный вопрос, которым задаются многие программисты. Если не обновлять язык на собственном сервере, вы просто лишаете себя преимуществ и возможностей очередной версии.
В каждом релизе PHP появляются новые фишки и функции, а также закрываются уязвимости. Например, is_countable позволяет определить тип переменной — перечисляемый или нет. Это очень удобная возможность для веб-разработчиков. Сейчас приходится использовать для определения типа переменной if, а в PHP 7.3 это можно будет сделать одной функцией.
Однако обновление версии PHP — это болезненный процесс для команды разработки, означающий многодневный рефакторинг кода и исправление ошибок — всё из-за проблем с обратной совместимостью в этом языке. Ранее установленные плагины и скрипты могут конфликтовать с новой версией, работать некорректно или не подключаться вообще, добавляя головной боли разработчикам.
Веб-хостинг Plesk в своем блоге на Хабре выложил статистику, какие версии PHP используют их пользователи на своих сайтах. В начале марта 2018 года ситуация выглядела вот так:
Как видите, самую последнюю версию используют очень немногие. Консервативное большинство остается верным надежным технологиям — от PHP 5.1 до 5.6.
Обновлять или не обновлять: вот в чем вопрос
Мы скажем так: Святого Грааля в проблеме обновления нет. Подходить к нему нужно с позиции целесообразности. Большой проект перевести на PHP 7 будет сложно: придется рефакторить всю кодовую базу, но ради чего? Любое изменение должно исходить из рабочей потребности.
Если проблем с поддержанием работоспособности сайта и скоростью загрузки нет, то переход на более современную версию — лишняя трата времени и средств. Если разработчикам всего хватает в функционале — в обновлении тоже нет смысла. Переход на новую версию не должен обосновываться тем, что это круто, модно и молодежно.
Заключение
Мы рассказали, как обновить PHP, и коснулись некоторых важных нюансов. Если вы хотите знать больше и стать высокооплачиваемым специалистом, советуем пройти наш курс «PHP-разработчик от 0 до PRO». Из него вы узнаете все необходимое для профессиональной работы с этим языком.
Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».
PHP в 2020 году
Это не секрет для веб-разработчиков и программистов в целом: PHP не имеет лучшей репутации. Несмотря на то, что он по-прежнему является одним из наиболее часто используемых языков для создания веб-приложений; За эти годы PHP сумел зарекомендовать себя как грязная кодовая база, неопытные разработчики, небезопасный код, несовместимая базовая библиотека, а что нет.
Хотя многие аргументы против PHP остаются в силе и сегодня, есть и хорошая сторона: вы можете писать чистые и поддерживаемые, быстрые и надежные приложения на PHP.
В этом посте я хочу взглянуть на эту яркую сторону разработки PHP. Я хочу показать вам, что, несмотря на многие недостатки, PHP является полезным языком для изучения. Я хочу, чтобы вы знали, что эра PHP 5 подходит к концу. Что, если вы хотите, вы можете написать современный и чистый код PHP, и оставить большую часть беспорядка, который был 10 лет назад.
Итак, давайте посмотрим, как язык изменился, даже повзрослел за последние несколько лет. Я хочу попросить вас отложить любые предубеждения всего на несколько минут и, возможно, удивиться тому, что такое PHP сегодня.
Давайте погрузимся в.
Подытожим историю
Прежде чем углубляться в детали, давайте рассмотрим, как в наши дни разрабатывается язык PHP. Сейчас мы находимся на версии 7.4, а следующей версией станет PHP 8.0 в конце 2020 года.
Начиная с поздней эры 5.*, основная команда старается поддерживать постоянный годовой цикл выпуска и преуспела в этом в течение последних четырех лет.
В целом, каждый новый выпуск активно поддерживается в течение двух лет и получает еще один год «только исправлений безопасности». Цель состоит в том, чтобы побудить разработчиков всегда быть в курсе последних новостей: небольшие обновления каждый год легче, чем, например, переход от 5,4 до 7,0.
Разработка PHP в настоящее время осуществляется группой добровольцев, некоторые из которых оплачиваются их работодателями, чтобы они работали над основной работой. Большая часть обсуждения того, как развивается язык, происходит в списке рассылки.
После всего этого давайте опровергнем некоторые распространенные заблуждения о современном PHP.
Система типов PHP
PHP начинал как очень слабо и динамически типизированный язык, который в то время имел свои преимущества. С тех пор, как люди начали использовать PHP для более крупных проектов, недостатки системы типов стали очевидными, и возникла необходимость в более сильной поддержке типов.
Сегодня PHP является довольно уникальным языком: он по-прежнему позволяет вам писать полностью динамически и слабо типизированный код, но также имеет гораздо более сильную систему опциональных типов. В сочетании со статическим анализом и такими инструментами, как Psalm, Phan и PHPStan, вы можете написать защищенный, строго типизированный и статически проанализированный код.
Взгляните, например, на этот фрагмент кода PHP, полностью используя его современную систему типов:
По правде говоря, в системе типов PHP все еще отсутствует одна важная особенность: универсальность. Есть надежда, что они будут добавлены, но пока нет ничего конкретного. В случае типизированных массивов вам нужно полагаться на docblocks, чтобы получить надлежащую поддержку IDE:
Синтаксис PHP
Эра 7.* сделала много хорошего, сделав PHP более зрелым языком, когда дело доходит до синтаксиса. Чтобы проиллюстрировать это, я сделал не полный список новых вещей в PHP.
Нуль коалесцирующий оператор:
Оператор присваивания с нулевым слиянием:
Стрелочные функции, также называемые короткими замыканиями:
И многое другое. Я надеюсь, что из этого списка ясно, что PHP все еще развивается сегодня, и вы можете быть уверены, что есть еще что-то хорошее.
Производительность PHP
В дни версии 5* производительность PHP была… в лучшем случае средней. Однако в версии 7.0 большие части ядра PHP были переписаны с нуля, что привело к увеличению производительности в два-три раза. Кроме того, каждая версия 7.* оказала положительное влияние на производительность.
Слов не хватает, хотя. Давайте посмотрим на ориентиры. К счастью, другие люди потратили много времени на тестирование производительности PHP. Я считаю, что у Кинста хороший обновленный список.
Последняя функция, связанная с производительностью, называется предварительной загрузкой, которая в основном позволяет хранить скомпилированные части вашего PHP-кода в памяти.
Когда выйдет PHP 8, у нас также будет JIT-компилятор, обещающий интересные улучшения производительности и позволяющий PHP входить в новые области, помимо веб-разработки.
Фреймворки и экосистема
Переходя к тому, что сделано сообществом с помощью PHP. Давайте будем ясны: PHP больше не просто WordPress.
Обе платформы имеют большую экосистему пакетов и продуктов. Начиная от административных панелей и CRM до автономных пакетов, CI для профилировщиков, многочисленных сервисов, таких как серверы веб-сокетов, менеджеры очередей, интеграции платежей; честно говоря, слишком много, чтобы перечислить.
Эти фреймворки предназначены для фактического развития; если вам нужно чистое управление контентом, такие платформы, как WordPress, CraftCMS и Statamic, улучшаются все больше и больше.
Посмотрите на этот график, перечисляющий количество пакетов и версий с течением времени. Его также можно найти на веб-сайте Packagist.
С тех пор как мы углубились в асинхронный мир, такие вещи, как веб-сокеты и приложения с большим количеством операций ввода-вывода, стали действительно актуальными в мире PHP.
Кроме того, в списке рассылки о внутреннем оборудовании говорилось о том, чтобы добавить libuv в ядро. Для тех, кто не знает о libuv: это та же библиотека, которую Node.js использует для обеспечения всей ее асинхронности. Кто знает? PHP 8 может быть версией, добавляющей его в ядро!
В заключение
Надеюсь, я смог показать вам, что PHP за последние годы значительно эволюционировал, и вы прекрасно умеете писать чистый и поддерживаемый код с его помощью.
Если вам интересно, как выглядит PHP-код в наши дни, вы можете проверить исходный код одного из моих собственных проектов, а также множество пакетов с открытым исходным кодом, которые мы лично поддерживаем.
Таким образом, в то время как у языка определенно есть свои недостатки и 20-летнее наследие, чтобы его носить с собой; Я могу с уверенностью сказать, что мне нравится работать с ним.
По своему опыту я могу создавать надежное, обслуживаемое и качественное программное обеспечение. Клиенты, на которых я работаю, довольны конечным результатом, как и я. Несмотря на то, что с PHP все еще возможно многое испортить, я бы сказал, что это отличный выбор для веб-разработки, если его использовать правильно.