PHP 6411 ~ 4 мин.

PHP в 2021 году

PHP в 2021 году

Если вы новичок в веб-программировании, возможно стоите на распутье и сомневаетесь куда двигаться дальше, то вам определенно стоит почитать этот пост

Так же, как в 2020 и 2019 годах подведем итоги о том, стоит ли изучать PHP в 2021 году.

Как я говорил в предыдущих постах: PHP уже не тот язык, которым был десять лет назад, и мы все очень благодарны за это. Это достаточно быстрый и надежный язык, используемый для создания масштабных приложений. Итак, давайте обсудим некоторые из наиболее заметных изменений PHP за последний год для языка и сообщества.

PHP 8 и дальше

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

Есть JIT, который, улучшает производительность некоторых проектов, а также предварительная загрузка, которая имеет в целом положительное влияние, если вы не используете shared хостинг.

Я думаю, что такой функционал, как атрибуты (также известные как «аннотации»), именованные аргументы и объявляемые свойства в конструкторе также заслуживают упоминания, поскольку они определенно способствовали тому, что PHP 8 стал таким замечательным выпуском.

Тем временем основная команда уже работает над следующей версией PHP 8.1, которая будет выпущена где-то к концу 2021 года. На данный момент наиболее важными функциями являются перечисления (Enum) и файберы (Fiber).

Год за годом основной команде удается представить сообществу новый стабильный выпуск, наполненный множеством функций и качественных улучшений. Путь обновления также не так уж и сложен. Я уже обновил некоторые из моих собственных проектов с PHP 7.4 до PHP 8, и это заняло от 30 до 60 минут на проект. На самом деле нет никаких веских причин оставаться на старых версиях!

Система типов PHP

Когда дело доходит до типов, есть очень интересные новости: перечисления будут добавлены в PHP 8.1 . Вдобавок к этому мы также видели, как некоторые разработчики инструментов статического анализа внесли свой вклад в исходный код PHP, разместив свой первый RFC. Это добавляет тип возврата - never, полезное дополнение для статического анализа.

Говоря об инструментах статического анализа, PhpStorm добавил встроенную поддержку Psalm и PhpStan , что является большим шагом на пути к более широкому применению.

К сожалению, дженерики по-прежнему не поддерживаются. Есть несколько серьезных препятствий этому, особенно с учетом того, что мы все еще имеем дело с языком с динамической типизацией. О возникших проблемах Никита Попов написал здесь. А вот, например, автор блога stitcher.io Брент описал подход, который был бы простым выходом: поддерживать дженерики, не во время выполнения, а полагаться на статический анализ. Это так же потребует изменения мышления в сообществе PHP в целом. Может быть, однажды это станет жизнеспособным вариантом, но пока что нет.

Асинхронный PHP

Буквально недавно были большие новости: PHP получает корутины, также известные как "зеленые потоки" - в PHP 8.1!  Хотя файберы - так их называют - могут не так уж и сильно изменить правила игры, как кажется на первый взгляд .

Несмотря на то, что сами файберы могут быть лишь маленькой шестеренкой в ​​том, что является большой асинхронной машиной, RFC снова вызвал интерес в асинхронном сообществе, чему мы можем только радоваться. Популярность асинхронных фреймворков, таких как Amphp и ReactPHP, растет, и недавно тот же Laravel объявил о встроенной поддержке Swoole и RoadRunner.

Composer 2.0

Ну  и конечно же, нельзя не упомянуть о новом выпуске Composer, де-факто стандартный менеджер пакетов. В октябре 2020 года вышел новый основной выпуск: Composer 2.0 . Эта версия поставляется с несколькими улучшениями UX, но, что наиболее важно, в ней значительно улучшена производительность, иногда даже утроенная при чистой установке. И это очень заметно на боевых проектах. Если вы до сих пор не обновились, советую не тянуть, прирост скорости работы оооочень заметен.

Говоря о композере, мне нравится измерять текущее состояние экосистемы PHP, просматривая доступные пакеты с течением времени. В прошлом году я говорил о ±25 миллионах загрузок в день, сегодня это число увеличилось более чем вдвое, и мы уже видим ±60 миллионов загрузок в день.

Наконец, взгляните на этот график, в котором показано количество пакетов и версий с течением времени. Его также можно найти на сайте Packagist.com . Вы можете ясно видеть, как растет здоровая экосистема, и конца этому не видно.

Язык

Давайте закончим напоминанием обо всем, что было добавлено в PHP за последние годы. Если вы не следите за его развитием, вам действительно стоит изучить этот список. Я думаю, что это показывает рост сообщества и основной команды разработчиков за последние годы, и я уверен, что это еще не все.


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

Что думаешь?

Категории
  • PHP 67
  • Заметки 17
  • Безопасность 4
  • Флуд 2
  • Nginx 2
  • ИТ новости 2
  • Видео 1
  • Docker 1
  • Roadmap 1
  • Архитектура 0

Хочешь поддержать сайт?

Делаем из мухи слона

sergeymukhin.com

персональный блог о веб-разработке от Сергея Мухина. Блог был основан в 2018 году, и собирался уделять основное внимание последним тенденциям, учебным пособиям, а также советам и рекомендациям, позволяющим начинающим девелоперам встать быстрее на правильную дорогу веб разработки, но что-то пошло не так 😃

Релизы PHP 8.4

Дата Релиз
8 Июня 2024 Альфа 1
20 Июня 2024 Альфа 2
04 Июля 2024 Альфа 3
16 Июля 2024 Feature freeze
18 Июля 2024 Бета 1
01 Августа 2024 Бета 2
15 Августа 2024 Бета 3
29 Августа 2024 RC 1
12 Сентября 2024 RC 2
26 Сентября 2024 RC 3
10 Октября 2024 RC 4
24 Октября 2024 RC 5
07 Ноября 2024 RC 6
21 Ноября 2024 GA

Что нового?