In December, the second annual survey of the Russian-speaking PHP community was held. We managed to collect twice as many answers as a year earlier – three thousand. Of course, we again asked the community about the articles and videos that were remembered for the year.
How opinions were collected and who took the survey
A couple more useful links at the start.
Most Mentioned Videos
Record holder for mentions – stream about the release of PHP 8.1, the launch of the PHP Foundation and the history of moving to 8.0 – on channels PHP Point and skyeng. And right during the broadcast, the news appeared that version 8.1 was officially released.
Stream about traits Is it evil or can it be used. All solved 4 rounds of cases. The live was held in December 2020, but the community still remembers.
NOT OOP ONE! Domain Driven Design on the example of a refrigerator – how onion architectures work, what are domain models, aggregates, and all this from DDD – yes, using a refrigerator as an example.
Stream to the release of PHP-8 on channels PHP Russia, skyeng and PHP Point. Report “PHP 8: userland”, a discussion about where the language is going and Q&A with core developers – Nikita Popov and Dmitry Stogov.
* Video from PHP Russia 2021 – artifacts from the conference in the form of recordings will be made available to the public closer to the next conference. But the reports were often remembered. For example, the story of Valentin Udaltsov about thesis and report Sergei Zhuk about Legacy.
A couple of recordings of reports can already be found in the conference habrablog: in the article about network exchange in PHP microservices and API versioning.
What else they watched and advised: live
Open Interview PHP Point #1 — Valentin Udaltsov vs Patrick Feldesh.
How to register and test shutdown functions – Valentin Udaltsov about destructors, registration and testing of shutdown functions, as well as various nuances around closures and garbage collection in PHP.
PHP8: new features. Getting ready for Laravel 9 — CutCode about PHP 8 features that made development more convenient: match expression, null-safe operator and more.
How to write good PHP code — interview with Senior PHP developer and ex-developer of viber Valery Selitsky.
Barbara Liskov’s substitution principle geometric interpretation — analysis of the principle in a live format. The idea for the video was born after reading articles.
How to become a PHP developer from scratch — interview with Kirill Nesmeyanov.
Finding and Fixing Memory Leaks in PHP — overview of memory leaks in PHP and tools for their control and fixing by Valentin Udaltsov.
Drupal Warmer: automate cache warming – about the Warmer module, which allows you to warm up the cache on the site in automatic mode.
PHP – why learn it, what is written in it, salaries, frameworks — frameworks, language usage statistics, market analysis.
What else they watched and advised: recordings of reports
PHP NN #4: for Symfony fans and sympathizers – recording of the Nizhny Novgorod meetup with reports by Valentin Udaltsov and Denis Yuryev.
Distributed Workflow in PHP Frameworks and Libraries — Anton Titov’s report at PHP fwdays’21 about orchestration systems, integration of Temporal with RoadRunner and the PHP world, as well as error handling in distributed applications.
Competent OOP: organizing reliable business logic – report by Dmitry Eliseev from the PHP Russia 2019 conference: on designing entities by duties using object-oriented decomposition. We learn to compose fast, convenient and reliable unit tests for all this.
How 200 lines of Go helped us free up 15 servers – a report by Pavel Murzakov from Badoo from the Avito meetup already for 2017.
Modular PHP monolith as an alternative to microservice architecture – the report of Yulia Nikolaeva from the iSpring meetup, which took place in December 2019, is mentioned in the survey for the second year.
Video in English
PHP in 100 Seconds – express immersion in the history of the language.
Most cited articles
The most notable php language changes in recent years – analysis of interesting changes from 5 to 8.1 versions of the language from @zm_llill.
PHP digests @pronskiy – recalled different issues. Several people immediately dropped the link to June about the alpha of PHP 8.1 and a review of proposals for the version, the release of Symfony 5.3 and more.
API versioning or a single codebase for all versions – solutions to the web-API versioning problem from the guys from SuperJob and @SamDark. Is there a video report.
php8.1 is available! – everyone saw this link from the official site 🙂 Key updates of the version.
The amazing future of the PHP career stack — @hatman shared his vision of the PHP path. Bonus – at the end of the article there are 600+ opinions on whether the language has a bright future.
Dependency Injection Methods: comparison of approaches, pros and cons and what to use in different situations – in the article by Dmitry Eliseev.
The history of the development of faceted search using PHP — @coh explored the possibilities of the language. Spoiler: I even had to write a GoLang port.
Building an efficient network exchange in PHP microservices – @MMgo’s story about how Avito optimized network calls, according to report with PHP Russia 2021.
How ManyChat moved to PHP8 – the chronology of two months of moving: from research to results.
Modular PHP Monolith: Cooking Recipe – @julianikolaeva about what can be done instead of sawing the monolith into microservices.
What else have you read
What’s new in PHP 8.1 — translation of the article What’s new in PHP 8.1 by @MaxRokatansky.
PHP 8.1 released – another article about the main features of the latest version from @maybe_elf.
Dependencies for entities and commands – continuation of a series of articles from Dmitry Eliseev about working with addiction and analysis of practical examples.
Barbara Liskov’s substitution principle (preconditions and postconditions) — without general examples of the principle. @genkovich covered “Preconditions”, “Postconditions”, covariance, contravariance and invariance, and the “story rule”.
We build a system of domain events in a modular monolith – how to guarantee their delivery, monitor the consistency within transactions, as well as the difference between domain events and integration events. @ilyashikhaleev shared his experience.
Should You Learn PHP in 2022? — Forecast article by @hatman. Arguments for and against, market analysis and facts from the life of the language.
PHP – I would buy it for a dollar — another article by @hatman on whether the investment of time in PHP will pay off.
Fault-tolerant interaction with external services – @AndreyEgoshin about synchronous and asynchronous interaction, their pros and cons, and how to improve fault tolerance.
PHP Generics. right here. right now — about generics support in PHP, as well as an implementation option from @mrsuh.
By the way, the other day generics were noticed in the St. Petersburg PHP chat:
Clean architecture in PHP. How can it be measured and controlled? — @vchetkov quotes Robert Martin’s book “Clean Architecture” and talks about developing his own tool.
Asynchronous PHP Myths: It’s not truly asynchronous — @seregazhuk about whether single-threaded PHP can really be executed asynchronously or we are being deceived.
Building a KPHP game with FFI and SDL — the world’s first KPHP graphics game in detail by @quasilyte and @troy4eg.
Why is static needed when declaring anonymous functions? – the answer is in a small article by @genkovich.
Comparison of php-fpm, nginx-unit and laravel-octane – Lots of charts and configuration options by @straykerwl.
Enums in PHP 8.1 – translation by @s_panteleev articles Brent Roose with detailed analysis of enams.
Passport control, or How to compress one and a half gigabytes to 42 megabytes – a fascinating analysis of the test for the position of a PHP developer.
PHP-Compiler, or diving down the FFI rabbit hole – translated by @SamDark articles Anthony Ferrara.
Binary and Bitwise Operations in PHP – translated by @AloneCoder articles Nickolas Da Silva.
Articles in English
What’s new in PHP 8.1 — article by Brent Roose about the 8.1 release. But version in Russian.
PHP 8.1: What’s New and Changed – and another review of the PHP.Watch release.
Type variance in PHP — Nikita Popov on the peculiarities of the type system in PHP.
Early binding in PHP – and another article by Nikita about earlier binding in PHP.
The New Life of PHP – The PHP Foundation — @pronskiy’s article about the launch of a fund to support PHP.
On the landing https://phpcommunity.ru/2021-php also compiled a list of libraries / packages and tools that are advised to pay attention.