80+ reports and articles that will be remembered by the PHP community in 2020

Recently, we decided to find out what, in addition to the 2020 pandemic, will be remembered by pkhp developers – who read what, watched what they worked on. Having received over 1,500 answers, we sat down to sort them out. Here’s what happened.

This material is part of the presentation of the results of 2020 in the Russian-speaking community. More data – company ratings, the popularity of frameworks in work projects and more, you can find in video versions and on that website

How we got the data and who gave the answers

At the end of December 2020, we laid out a form of 14 questions: some meant a free answer, some meant a choice from options (more details here) We scattered the link to the form on chats and channels for PHP developers in the telegram, and also made announcements on Twitter, on Habré and launched a small targeted campaign in VK. Until the end of January 2021, we were accepting anonymous responses.

1506 respondents completed the questionnaire in whole or in part.

44% defined themselves as middle

24% – as seniors

thirteen% – like team leaders

Post structure

1.1. Popular streams

1.2 Records of reports from different years, which are remembered

1.3. Memorable reports in English

2.1. Most mentioned articles and books

2.2. Frequently cited articles

2.3. Translations of articles that are memorable

2.4. Articles in English

1. What we watched

We received over 240 relevant free answers, by which it was possible to restore links to materials, and then selected the most mentioned ones.

1.1. Streams

Back to the table of contents

Meet PHP 8: Update Tips, Opinions & Interviews with the Language Developer

A small holivar about whether the language goes the way, a report on the userland and a public interview with Nikita Popov and Dmitry Stogov. The broadcast on 3 channels was watched by over 1,100 people live. In total, the recordings from the November meetup got more than 40k views for the entire time.

Are traits in PHP evil? Valentin Udaltsov against everyone

Holivar on a holivar topic is perhaps one of the most successful online formats. The discussion consisted of 4 rounds – in each a new case was taken apart. After each round, viewers voted for and against the traits.

Choosing between PHP and Go is easy, enough …

A stream in which those who wrote in PHP, but switched to Go, and those who write mainly in PHP, didn’t hype – they wrote two services and parsed their code, while talking about the weaknesses and limits of applicability of their favorite language.

Refactor with Alexander Makarov, Valentin Udaltsov, Valentin Nazarov, Leonid Korsakov

One repository on github, two diametrically opposed refactoring approaches. And cat.

PHP frameworks and tools meetup

During the pandemic, a new city appeared on the PHP community map – the guys from Tomsk loudly declared themselves, starting to collect mixed online offline meetups with a cool speaker lineup.

Above, we have presented the most popular free answers.  And here is how the votes were distributed according to the predetermined positions
Above we have presented the most popular free answers. And here is how the votes were distributed according to the predetermined positions

You can find all these and other records in archive of streams and meetups or in the list YouTube channels for PHP developer.

1.2. Recordings of reports

Back to the table of contents

Cycle ORM and graphs – Anton Titov’s report from the PHP fwdays’20 online conference. Differences between ActiveRecord and DataMapper approaches. Solving the problem of topological sorting of ORM dependencies using iterative depth-first sort.

Highlights in PHP 8 – JIT, Preloading and FFI and not only in Dmitry Stogov’s talk with PHP Russia 2019.

Let’s talk about the code – report by Alexander Makarov from the PHP fwdays’20 online conference. An analysis of the principles that allow you to write code that breaks less.

Finding and fixing memory leaks in PHP – Valentin Udaltsov shows how to find a problem and how to fix it using the example of a leak found in a Symfony component.

PHP: Wrong Way – Kirill Nesmeyanov on where to start learning PHP, how to improve your skill and what will happen to the language next. Recording from a meetup in Ivanovo at the end of 2019.

30+ examples of threats: forms, files, headers, browser, console, database – Alexander Makarov about security in web development: from basic things to PHP features. Recording from the Kazan PHP meetup at the end of 2019.

Developing Hybrid PHP / Go Applications Using RoadRunner – report by Anton Titov from the PHP Russia conference. How to daemonize a PHP application to improve performance.

MySQL We Don’t Know – report by Viktor Zinchenko from the PHP fwdays’20 online conference. How to organize MySQL monitoring with Prometheus, Grafana and what to do with slow queries.

Refactoring PHP Code Using DDD – Vitaly Chirkov shows by examples what techniques worked in his case. Recording from the meetup at the Badoo office in February 2020.

Literate OOP: Organization of Reliable Business Logic – report by Dmitry Eliseev from the PHP Russia 2019 conference. We train in object-oriented decomposition for competent design of entities by responsibilities and learn to write fast, convenient and reliable unit tests for this.

A quick way to deal with Legacy and start living – Sergey Zhuk about how to turn working with Legacy into an exciting adventure. Or rewrite everything? Or will it do? Recording from Krasnodar PHP-meetup in November 2020.

Thanks to these and other channels for sharing the video.
Thanks to these and other channels for sharing the video.

Why and how to write high-quality Unit tests – Alexey Solodkiy talks about the basic concepts of unit testing and how to maintain the quality of tests on a project. Recording from the meetup at the Badoo office in March 2019.

How to Contribute to Symfony and Why You Should Do It – recording from a meetup within PHP Russia 2019.

Doctrine ORM to CQRS in 20 minutes – Dmitry Simushev on what to do when doctrine optimization hacks no longer work. Recording from the meetup at the Skyeng office in the summer of 2019.

Stranger Things in PHP – Kirill Nesmeyanov on the use of PHP beyond web development. Recording from an online meetup in the spring of 2020.

Porting a project to PHP 7: from gathering facts to results – Maxim Shamaev about what to do when someone comes to you and offers to deal with a very old code. Recording from an online meetup in the spring of 2020.

Various evolutions from start to release in a PHP product – video from the PHP fwdays’20 online conference. Alexander Savchenko on None-Breaking change development, cross-stack contracts, Trunk Based development and much more.

Building Highload with PHP and Redis – Mikhail Mazein about what to do with queues of a million messages. Recording from the Nizhny Novgorod PHP meetup at the end of 2019.

Big Ball of Mud and other monolith issues we dealt with – Yulia Nikolaeva on the modular monolith as an alternative to microservices. Recording from an online meetup in the spring of 2020.

1.3. Recordings of reports in English

Back to the table of contents

Effortless Software Development

Package Design Principles in Practice

Queues, busses and the messenger component

Getting the most out of the PHP 7 engine – the example of Symfony

More Than a Query Language: SQL in the 21st Century

2. What you read about

We received 360 unique, relevant responses, by which it was possible to restore links to materials, and then selected the most mentioned ones.

But people answered closed questions more willingly)
But people answered closed questions more willingly)

2.1. Most mentioned materials

Back to the table of contents

I don’t like what PHP turns into – powerful statement from @AlexLeonov who got development on stream for PHP 8.

PHP 8 – what’s new? – an overview of innovations from @ rela589n, released the day before the release of 8.

Regular PHP digests by @pronskiy – different editions mentioned. By the way, from this year they are available in the form streams on YouTube.

The architecture of complex web applications. With examples in Laravel – he translated the book by @Adelf himself and posted it for download on GitHub.

Php-developer interview: questions and answers – A selection compiled by @Nidhognit to prepare for interviews. Thanks for sharing with the community!

What’s wrong with traits? – preview to the stream, where in the end won traits and @SerafimArts 🙂

Now I will convince you to use static analysis in PHP. – podcast transcript “Between brackets”, In which @seregazhuk and @vudaltsov discuss Psalm and more.

Why limit inheritance with final? – material from the end of 2019 from @parshikov_pavel which found a grateful reader in 2020.

Where PHP is heading, and also about Yii and other frameworks – a presentation from @SamDark that’s easy to read.

2.2. Also often mentioned

Back to the table of contents

Asynchronous PHP – transcript of Anton Shabovta’s report from PHP Russia 2019.

How to reuse code with Symfony 5 bundles? – a series of articles from Roman Naumenko.

How I tried to improve Laravel and only made it worse – “not a method, but a monster” or the history of one commit.

Pitfalls for modern PHP – one more reflection on the fate of PHP, if you liked the materials of Albert Stepantsev and Sasha Makarov, it will definitely come.

An entertaining mini-interview with the main contributors of PHP 8 – partial transcript of the stream with Nikita Popov and Dmitry Stogov. The sequel was recently released here

“During quarantine, the load increased 5 times, but we were ready” – the same story from Lingualeo. 685 comments under the post!

Now I can’t even make a small website – a mini overview of what a modern web developer should (not) know.

PHP development environment based on Docker – how to quickly create a universal development environment on a local machine.

Dead Code: Find and Disarm – to add something, you need to remove something.

You have problems with legacy – then you are in luck! Sawing a monolith in PHP – the name speaks for itself

Spiral: a high-performance PHP / Go framework – review from the author of the tool

Why try Drupal 9 – if you are looking for a CMS.

Let me go PHP – the host of the PHP Today telegram channel shares the pain.

NON-cool: PHP gRPC client in production – combat solution, which, moreover, is easy to write.

PHP framework vulnerabilities – how many of them do you know?

FFI: writing Rust in a PHP program – material from the fall of 2019, which is still remembered today.

DDD in practice – a tutorial from 2018, which was relevant in 2020.

2.3. Translations

Back to the table of contents

PHP Code Coverage Improvements in 2020 – why code coverage metrics lie (and what to do about it).

Upgrading an Old PHP Application – what anti-patterns to catch in your legacy. More of this from the experience of Russian companies – at PHP Russia this summer.

Modern PHP without frameworks – an article about the opportunity to become a better developer.

Understanding JIT in PHP 8 – how it works and why the performance gain (it seems) will not be colossal.

PHP evolution – from 5.6 to 8.0 – a small cheat sheet with a continuation.

2.4. In English

Back to the table of contents

It’s not legacy code – it’s PHP

Object Oriented Done Right

Laravel beyond CRUD: the next chapter

My journey into event sourcing

PHP 8: before and after

Commits are snapshots, not diffs

Modular Monolith: A Primer

ps Thanks to everyone who shared what they read and watched in 2020!

pps Special and huge thanks to @jm_sub and @alyssashch for help with data processing.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *