Эпическое обновление PHP! Сможет ли версия 8.4 переломить ситуацию?
Эпическое обновление PHP! Сможет ли версия 8.4 переломить ситуацию?

В отличие от ранней версии Java, цикл выпуска которой составлял один год, последняя версия PHP 8.4 была официально выпущена 19 ноября, даже раньше, чем первоначально планировалось 21 ноября, а на день позже, 20 ноября, была выпущена версия 8.4.1. .

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

Следите за разработчиками Tencent Cloud и заранее получайте техническую информацию из первых рук👇

01. Список последних функций

1.1 Хуки свойств Хуки свойств

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

Пример:

Язык кода:javascript
копировать
class BookViewModel
{
    public function __construct(
        private array $authors,
    ) {}

    public string $credits {
        get {
            return implode(', ', array_map(
                fn (Author $author) => $author->name, 
                $this->authors,
            ));
        }
    }
    
    public Author $mainAuthor {
        set (Author $mainAuthor) {
            $this->authors[] = $mainAuthor;
            $this->mainAuthor = $mainAuthor;
        }
        
        get => $this->mainAuthor;
    }
}

1.2 Без скобок Цепочка методов без скобок

Новая версия PHP попрощалась с избыточными круглыми скобками в цепочках методов. Теперь разработчики могут опускать круглые скобки при непосредственном вызове методов вновь созданных объектов, что упрощает написание цепочек методов.

Пример кода:

до:

Язык кода:javascript
копировать
$name = (new ReflectionClass($objectOrClass))->getShortName();

Сейчас:

Язык кода:javascript
копировать
$name = new ReflectionClass($objectOrClass)->getShortName();

1.3 Асимметричная видимость Асимметричная видимость

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

Пример кода:

Язык кода:javascript
копировать
class ReadOnlyProperty {
    public string $data get;
    private string $data set;
}

1.4 Новые функции array_*()

Новые функции array_find(), array_find_key(), array_any() и array_all().

Пример кода:

Язык кода:javascript
копировать
$numbers = [1, 2, 3, 4];
$found = array_find($numbers, fn($n) => $n > 2);

echo $found; // Выход: 3

1.5 Новая поддержка HTML5

В PHP 8.4 добавлен класс \DOMDocument, который может правильно анализировать код HTML5. Старый класс \DOMDocument по-прежнему доступен для обратной совместимости.

Пример кода:

Язык кода:javascript
копировать
$doc = \Dom\HTMLDocument :: createFromString($contents);

Другие обновления основных функций можно найти на официальном сайте: https://www.php.net/releases/8.4/zh.php.

02. PHP: Наступает упадок или поворот?

2.1 Былая слава ушла

Язык PHP родился в 1995 году. Первоначально это был просто скриптовый инструмент для обработки HTTP-форм. В последующих версиях была добавлена ​​поддержка запросов к базе данных MySQL, и постепенно он стал независимым языком разработки веб-проектов. С быстрым развитием Интернета PHP стал популярным благодаря простоте изучения и использования, а также сильному сообществу разработчиков, и стал одним из основных языков для разработки интернет-приложений. В сочетании с Linux, MySQL и Apache он, называемый стеком технологий LAMP, оказал огромное влияние на Интернет и постепенно стал основной технической архитектурой для создания динамических веб-сайтов и приложений. По статистике W3C, почти 78% из них. Всемирные веб-сайты разрабатываются на основе PHP Constructed.

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

С появлением новых технологий, таких как мобильный Интернет, облачные вычисления и искусственный интеллект, системы программного обеспечения Интернета становятся все более и более сложными. Крупномасштабные веб-системы предъявляют все более высокие требования к высокой параллельности и доступности. По сравнению с PHP, Java имеет типобезопасность, лучшую производительность, технологию многопоточного пула соединений, более строгие спецификации программирования, а также более зрелые решения и экосистему в управлении сервисами. Многие технические команды предпочитают использовать Java для создания веб-систем вместо PHP.

Кроме того, с появлением новых языков программирования, таких как Node.js, Golang и т. д., они получили преимущества, которых нет у PHP в некоторых аспектах, таких как статическая компиляция, лучшая производительность и асинхронное программирование. Эти языки программирования также процветают и используются все большим количеством разработчиков.

Индекс TIOBE в этом году показывает, что популярность PHP упала до рекордно низкого уровня, заняв 17-е место. В то же время, согласно ежегодному отчету опроса разработчиков Stack Overflow, популярность PHP среди разработчиков упала с примерно 30% до 18. % сейчас.

2.2 Преобразование под руководством сообщества

Взлет и падение языка программирования неотделимы от среды, в которой он работает. Точно так же, как Java, доминирующий язык программирования корпоративного уровня, также подвергся сомнению со стороны языка Go в эпоху облачных технологий. Есть замечания, которые очерняют Java. каждый год, но Java нет. Он по-прежнему силен, но это не означает, что сообщество Java не внесло изменений, чтобы соответствовать требованиям новой эпохи.

Java обычно разрабатывается для крупномасштабных, долго работающих серверных приложений. Наиболее характерные технические особенности Java, такие как компиляторы «точно в срок», оптимизация, ориентированная на производительность, и подсистемы сбора мусора — все они предназначены для облегчения длительной работы. Наслаждайтесь преимуществами разработки аппаратного обеспечения. Однако тенденция развития микросервисов в эпоху облачных технологий показывает, что кластерам сервисов высокой доступности не требуется, чтобы один сервис работал круглосуточно, 7 дней в неделю, и их можно прервать и обновить в любое время.

Таким образом, в условиях таких фоновых проблем сообщество Java запустило ряд важных проектов, таких как Project Leyden, Valhalla, Loom и Portola, и начало трансформацию, которую можно назвать разворотом авианосца.

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

Иностранные разработчики положительно отозвались об этом выпуске PHP, приближающемся к Java:

2.3 Стоит ли изучать PHP?

По сравнению с современными основными языками программирования Java, Python, C++ и новыми популярными языками программирования, такими как Node.js, Rust, Golang и т. д., PHP имеет свои уникальные преимущества, которые невозможно заменить. Это очень удобный набор инструментов для разработки, который поможет сэкономить много времени.

Подводя итог, преимущества PHP заключаются в следующем:

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

Фреймворки PHP, представленные Laravel и Symfony, в настоящее время становятся все более зрелыми, постепенно сокращая дистанцию ​​с фреймворком Java Spring. Проект расширения сопрограмм Swoole также запустил в этом году план v6.0, представив решение для параллельного программирования многопотоков + сопрограмм для PHP.

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

PHP-разработчикам, во-первых, необходимо изучить искусственный интеллект, использовать такие инструменты, как ChatGPT и GitHub Copilot, чтобы повысить эффективность разработки, а также понять принципы работы больших моделей, таких как Transformers; во-вторых, мы можем использовать образы Docker и инструменты оркестрации контейнеров Docker Swarm; и Docker Compose реализуют собственное управление запуском контейнеров; в-третьих, мы также должны освоить стеки интерфейсных технологий, такие как Vue/React/ElementUI, и, наконец, иметь возможность разрабатывать полный стек, изучать C++/Golang/Java; Другие технологии языков программирования также необходимо не ограничиваться только PHP как языком программирования.

-End-

Первоначальный автор|Разработчик Tencent Cloud

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose