search
HomeheadlinesPHP in 2021 lives up to expectations

PHP in 2021 lives up to expectations

May 20, 2021 pm 02:05 PM
2021php

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
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

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function