Home headlines PHP in 2021 lives up to expectations

PHP in 2021 lives up to expectations

May 20, 2021 pm 02:05 PM
2021 php

Once a year, I review the latest developments in the PHP world and look forward to what's ahead. Just like 2020 and 2019, we are here again!

Like I say time and time again: PHP is not the same language as it was ten years ago, and for that we are very grateful. It is a fast and reliable language for building large applications at scale. So let’s discuss some of the most notable changes to the language and community in PHP in the past year.

PHP 8 and later

The new major version PHP 8 was launched late last year. I've written a lot on this topic, I won't copy/paste everything here. As always, performance is only improving, as shown by benchmarks done by Kinsta.

There is also a JIT which can really improve the performance of some projects, and if you are not using shared hosting, preloading can have a positive impact on the overall project.

I think features like properties (also called "annotations"), named parameters, and promoted attributes are also worth mentioning, as they definitely contributed to making PHP 8 such a great release.

At the same time, the core team is already developing a new version of PHP 8.1, which will be released at the end of 2021. Currently, the most important functions are enums and fibers, which I will mention again later in this article. postal.

Year after year, the core team successfully brings the community a new stable version with many features and quality of life improvements. The upgrade path is no longer that difficult either. I upgraded some of my projects from PHP 7.4 to PHP 8, and it only took about an hour per project. There really is no reason to stay behind!

PHP’s Type System

There’s actually some very exciting news about types: enums will be added in PHP 8.1. On top of that, we also saw some static analysis tool maintainers contribute to PHP's source code by landing the first RFC. This adds the never type, which is useful for static analysis.

Speaking of static analysis tools, PhpStorm has added built-in support for Psalm and PhpStan, an important step towards wider adaptation.

Unfortunately, there is still no support for generic drugs. There are some major roadblocks, especially since we're still dealing with dynamically typed languages. Nikita outlines these issues here. Personally, my approach would be the simple one: support only runtime-erased generics, and rely on static analysis. This requires not only a technical solution, but also a change in thinking within the entire PHP community. Maybe one day it will become a viable option, but so far not yet.

Asynchronous PHP

There’s big news recently: PHP is getting coroutines — aka. Green Threads — In PHP 8.1! Although, fiber (also known as fibre) may not be as big of a game-changer as you think.

Even though fiber itself may be just a small cog in the larger asynchronous computer, the RFC has once again brought attention to the asynchronous community, and we can only be happy about it. Asynchronous frameworks such as Amphp and ReactPHP are becoming increasingly popular, and recently Laravel announced built-in support for Swoole.

Community

I can’t help but mention the de facto standard package manager Composer. It released a new major version in October 2020: Composer 2.0. This release features some UX improvements, but most importantly it achieves huge performance improvements, sometimes being three times faster even on a fresh install.

Speaking of composers, I like to gauge the current state of the PHP ecosystem by looking at the packages available over time. Last year, I talked about 25 million downloads per day, and today that number has more than doubled and we're at 60 million downloads per day.

Finally, take a look at the graph listing the number of packages and versions over time. It can also be found on their website. You can clearly see a healthy ecosystem growing and there is no end in sight.

PHP in 2021 lives up to expectations

Language

Finally, let’s take a look back at everything that has been added to PHP in the last few years. If you haven't been keeping up with it, you really want to check this list out. I think this shows how much the community and core development team have grown in recent years, and I'm sure there's more growth to come.

Enums

#Fibers

Attributes

Named Arguments

Match

Constructor Property Promotion

Short closures

Null coalescing operator

Traits

Typed properties

Spread operator

The JIT

FFI

Return type declarations

Generators

All that to say Yes: PHP is alive and well. Every year I feel more satisfied with the direction the language is taking and hope to use it for many years to come!

php Chinese website translated from: https://stitcher.io/blog/php-in-2021, thanks to the original author Brent!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.