logo
Ещё

Как обновить PHP

Сразу предупреждаем, что если у вас есть сайт, который работает на какой-либо версии PHP – не спешите его обновлять, потому что есть риск, что некоторые страницы сайта после такого обновления перестанут работать. Это – проблема практически любого языка программирования, потому что после обновления версии ломаются какие-либо зависимости, и все перестает работать. А вот для начинающих разработчиков изучать PHP стоит сразу с самой свежей+стабильной версии, потому что в процессе изучения PHP вы будете пользоваться самыми новыми «фишечками» языка. Ниже – о том, как обновить PHP вашего «ручного» сайта. Кроме того, в самом конце мы дадим простой совет тем, кто занимается разработкой сайтов и хочет проапгрейдить PHP до самой свежей версии.


Актуальная версия PHP

Вообще, максимальная версия, которая сейчас используется для создания сайтов – это PHP 8, вышедшая в конце 2021 года. Но восьмая версия еще не получила статус стабильной – до сих пор фиксятся баги в вносятся улучшения.

Самая свежая, и при этом стабильная версия – PHP 7.

Возможности PHP 7

Здесь мы вкратце перечислим основные фичи, которые появились в PHP 7:

  • Скалярные типы можно объявлять принудительно, в этом случае значение будет в обязательном порядке приводиться к объявленному типу.
  • Появилась возможность указания типа возвращаемого функцией значения.
  • Появился синтактический сахар для тернарного выражения, если оно в одном из случае возвращает null: с помощью ?? вы можете задать возврат либо указанного значения (если оно существует), либо null.
  • Новый оператор сравнения <=> возвращает значение -1/0/1 в зависимости от того, что больше – правая часть/равны/левая часть (1 <=> 2 вернет -1).
  • Массивы с константами теперь объявляются через define.
  • По аналогии с анонимными функциями (лямбдами) были добавлены анонимные классы.
  • Появилось задание символов Unicode через шестнадцатеричный код.
  • Появились более надежные и удобные инструменты для сериализации/десериализации и замыканий.
  • Работа с Unicode пополнилась новыми функциями вроде возвращения шестнадцатеричного кода символа.
  • Появилась улучшенная версия assert – ожидания.
  • Теперь не нужно перечислять каждый класс, который вы хотите использовать в namespace – можно объединить схожие в одном use.
  • Генератор теперь может возвращать окончательное значение через return – возвращается, когда все итерации генератора были выполнены. Полезно для отслеживания окончания работы генератора.
  • Генераторы теперь могут напрямую передавать данные другим генераторам.
  • Теперь можно открывать сессии с другими, отличными от стандартного конфига, параметрами.
  • Регулярные выражения теперь можно группировать в массив для более быстрой обработки вызовов.
  • Улучшены функции, отвечающие за генерацию ключей безопасности.
  • Функция создания списка теперь правильно обрабатывает поданные ей на вход массивы.

Обновить PHP на Win

Если вы решили изучать программирование на PHP, то у вас скорее всего установлен какой-либо локальный сервер вроде WAMP или XAMPP, возможно вы самостоятельно поднимали какой-нибудь «серьезный» сервер – nginx или apache. Во всех этих случаях вам нужно обновлять сервер, а не PHP – версия PHP сама обновится до текущей, когда вы обновите сервер. Инструкции по обновлению несколько различаются от сервера к серверу, но общий принцип у них одинаков:

  1. Сохраняете локально на компьютере все исходники вашего сайта (обычно – все то, что лежит в папке www).
  2. Заходите в админку сервера, останавливаете все службы.
  3. Удаляете сервер через «Установку и удаление приложений».
  4. Скачиваете нужную вам версию сервера.
  5. Устанавливаете новый сервер, заливаете на локальный хостинг все исходники сайта.
Естественно, после этого вам некоторое время придется повозиться со слетевшими зависимостями и всплывшими после миграции багами – от этого никуда не деться.

Обновить PHP на Ubuntu

В этом случае вам нужно тянуть новую версию из репозитория PHP. Поскольку репозиторий – частный, сначала вам нужно установить дополнительный пакет, который упрощает работу с частными репозиториями:

sudo apt-get install software-properties-common python-software-properties

После того, как все установится, вам нужно будет «стянуть» все версии PHP:

sudo add-apt-repository ppa:ondrej/php

Теперь установка зависит от типа вашего сервера. Если вы используете Apache, то:

sudo apt-get install php7.0-mysql //перепривязываем язык программирования и базу данных mysql
sudo apt-get install php7.0 //ставим сам PHP

Если вы используете nginx, то все немного сложнее:

  • sudo apt-get install php7.0-fpm //и тут перепривязываем язык
  • открываем через nano файл конфига nginx;
  • ищем переменную fastcgi_pass;
  • меняем в ней php5-fpm.sock на php/php7.0-fpm.sock.

Обновить PHP на Debian

Сначала обязательно делаем apt update и apt upgrade. После этого нужно подключить пользовательские репозитории:

wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add –

echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list

sudo apt-get install ca-certificates apt-transport-https

Последнее нужно делать только в том случае, если консоль выдала предупреждение о том, что не хватает каких-то зависимостей.

А дальше все просто:

apt-y install php php-common
после чего версия обновится.

Обновление для популярных CMS

Для всех CMS обновление происходит одинаково. Если у вас локальный сервер, на котором установлена система управления контентом – вы заходите в настройки CMS, ищете «версия PHP» и выставляете нужную. Если ваш сайт лежит на хостинге с системой управления контентом – вы сначала заходите в настройки хостинга, ищете версию ПХП и выставляете нужную.

После этого, если ЦМС не обновилась сама – вы заходите уже в ее настройки и выставляете нужную версию PHP.

Зачем обновлять

Как мы уже говорили выше, обновляться в первую очередь нужно тем, кто учит PHP – для изучения синтаксиса желательно иметь самые свежие функции, доступные в языке. К тому же это сильно влияет на основы программирования, которые вы будете учить – те же анонимные функции и классы, которые сильно упрощают разработку сложных приложений, могут быть недоступны в старых версиях. По поводу совместимости можете не переживать – все свежие CMS без проблем принимают и PHP 7, и PHP 8.

Отличия версий

Если смотреть на эволюцию версий, то отличий – гигантское количество, все их мы здесь перечислять не будем (если вам очень интересно – в этой статье они детально расписаны). Мы же покажем, сколько запросов в секунду могут отрабатывать различные CMS на разных версиях языка:

PHP 5

PHP 7

WordPress

96

204

Drupal

182

316

Magento

41

69

Laravel

285

485

Zend Framework

250

489

SugarCRM

127

270

Естественно, точные числа зависят от конкретного железа, но вы можете проследить динамику: за счет новых функций и оптимизаций языка разработчики систем управления контентом могут повысить продуктивность бэк-энда сайта на 50-100%.

Что почитать по теме

FAQ

Как безопасно обновиться, если есть живой рабочий сайт?

Дважды подумайте перед тем, как начинать обновление – здесь работает хороший принцип «работает – не трогай». Если обновиться все же надо – напишите в саппорт вашего хостинга и попросите инструкцию по обновлению. Обычно у саппорта такие инструкции есть, и в них учтены мелочи, которые критичны для конкретного хостинга.

Стоит ли начинать учить PHP на восьмой версии?

Мы бы все же советовали 7-ю. Версии языка – это вещь довольно инертная, даже если вы сейчас начнете учить PHP с нуля, скорее всего к тому моменту, как вы выйдете на свою первую работу, PHP 7 еще будет доминирующим. Поэтому есть смысл учить именно его – если вы начнете с PHP 8, многие его «фишки» будут вам недоступны на реальных проектах.

Подведем итоги

Тезисно:

  • Стабильная версия ПХП на текущий момент – 7-я.
  • Дважды подумайте перед тем, как обновляться на новую вервию при наличии рабочего сайта – с высокой вероятностью что-нибудь сломается.
  • Локальные сервера обновляются переустановкой пакета (Windows) или стягиванием пакетов из пользовательских репозиториев с дальнейшим обновлением (UNIX).
  • PHP 7 – существенно более быстрая, чем PHP 5. Если хотите обновиться на хостинге – лучше попросите инструкцию у вашего саппорта.
Часто ищут