PHP 2699 ~ 3 мин.

PHP в 2022 году

PHP в 2022 году

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

В этом году мы увидели потрясающие новые функции, добавленные в PHP, такие как атрибуты, enums, объявление свойств в конструкторе и fibers; и вдобавок ко всему, сообщество статического анализа добилось больших успехов. Итак, начнем.

PHP 8.1

Возглавит этот список новейшая версия PHP 8.1. Большинство наших проектов уже перешли на PHP 8.1 в продакшене, чему я признаться очень рад. Возможно, вы не ожидаете этого от минорной версии — в ней нет серьезных критических изменений, а добавлены только уведомления об устаревании, - но PHP 8.1 предлагает несколько очень интересных функций.

Перечисления теперь встроены в язык:


enum Status
{
    case draft;
    case published;
    case archived;
    
    public function color(): string
    {
        return match($this) 
        {
            Status::draft => 'grey',   
            Status::published => 'green',   
            Status::archived => 'red',   
        };
    }
}

Мы можем использовать new в инициализаторах:


class PostStateMachine
{
    public function __construct(
        private State $state = new Draft(),
    ) {
    }
}

И, конечно же, свойства только для чтения:  


class PostData
{
    public function __construct(
        public readonly string $title,
        public readonly PostState $state,
        public readonly DateTimeImmutable $publishedAt,
    ) {}
}

Что, в сочетании с объявлением свойств в конструкторе PHP 8.0 , делает некоторые классы данных очень чистыми. Чтобы наглядно представить разницу, вот тот же класс с той же функциональностью, написанный на PHP 5.6:


class PostData
{
    /** @var string */
    private $title;
    
    /** @var State */
    private $state;
    
    /** @var \DateTimeImmutable|null */
    private $publishedAt;
   
   /**
    * @param string $title 
    * @param State $state 
    * @param \DateTimeImmutable|null $publishedAt 
    */
    public function __construct(
        $title,
        $state,
        $publishedAt = null
    ) {
        $this->title = $title;
        $this->state = $state;
        $this->publishedAt = $publishedAt;
    }
    
    /**
     * @return string 
     */
    public function getTitle()
    {
        return $this->title;    
    }
    
    /**
     * @return State 
     */
    public function getState() 
    {
        return $this->state;    
    }
    
    /**
     * @return \DateTimeImmutable|null 
     */
    public function getPublishedAt() 
    {
        return $this->publishedAt;    
    }
}

Статический анализ

Статический анализ в PHP значительно развивается. Такие фреймворки, как Laravel, все больше и больше используют статическую типизацию (написание кода и докблоков с единственной целью помочь статическому анализу); В PhpStorm добавлена ​​поддержка универсальных типов, это очень важно, если вы можете написать универсальный код и ваша IDE понимает его , пока вы его пишете; PhpStan и Psalm только растут;

PHP foundation

Несколько месяцев назад PHP получил довольно большую новость, может быть, даже самую большую новость 2021 года: Никита Попов, один из самых активных специалистов по поддержке ядра, уходит, чтобы работать над LLVM, но в то же время появилась новая инициатива, поддержанная несколькими крупные компании, чтобы, наконец, сделать основное развитие устойчивым.

Короче говоря, есть PHP Foundation, некоммерческая организация, единственной целью которой является финансирование разработки ядра PHP. Инициатива продвигается JetBrains, которая уже вложила в проект 100 000 долларов. Наряду со многими другими, они собрали 329 920,75 долларов - хорошее начало!

Эти деньги используются для финансирования основной разработки и открывают возможности для работы над PHP для людей, которые раньше не могли этого сделать. Подробнее о миссии и целях Фонда можно прочитать в блоге JetBrains.

Экосистема

Ну и нельзя не упомянуть Packagist, в котором сейчас зарегистрировано более 3 миллионов версий и более 300 000 пакетов. Как видите, экосистема продолжает расти и расти, и 2022 год ничем не будет отличаться.

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

Одним из захватывающих событий в асинхронном сообществе стало то, что разработчики из Amp и ReactPHP — двух основных асинхронных игроков — объединились, чтобы создать совместимую с волокном реализацию цикла событий под названием Revolt PHP.

По сравнению с сообществом в целом, асинхронный PHP используется лишь небольшой его частью; но, тем не менее, приятно видеть, что асинхронное сообщество становится сильным и охватывает современный PHP.

Serverless PHP

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


Подводя итоги

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

PHP будет по-прежнему популярен в 2022 году, потому что он прост в использовании и универсален. Его можно использовать как для небольших, так и для крупных проектов, что делает его хорошим выбором для предприятий любого размера.

Что думаешь?

Категории
  • PHP 66
  • Заметки 15
  • Безопасность 3
  • Флуд 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

Что нового?