A white paragraph.
Welcome to this week's Symfony Station Communiqué. It's your weekly review of the most valuable and essential news in the Symfony and PHP development communities. Take your time and enjoy the items most valuable for you.
Thanks to Javier Eguiluz and Symfony for sharing our last communiqué in their Week of Symfony.
*Please note that links will open in a new browser window. My opinions, if I present any, will be in bold.
Symfony
As always, we will start with the official news from Symfony.
Highlight -> "This week, Symfony released the first versions of the recently open-sourced Symfony CLI project. In addition, Symfony announced the upcoming ending of Early Bird Tickets and Call for Papers period for the SymfonyLive Paris 2022 and SymfonyWorld Online 2022 Summer Edition conferences."
A Week of Symfony #784 (3-9 January 2022)
It's your last chance to get an Early Bird ticket for SymfonyWorld Online 2022 Summer Edition workshops, conference, or combo workshop and conference. The deadline is January 14th, 2022 11:59 pm (Paris time).
Last day of Early Bird registration for SymfonyWorld Online 2022 Summer Edition

Featured Item
We just published our latest original content piece. It will be helpful if you are looking for a CMS for your next project.
Have you ever wondered which CMSs are built with Symfony? Well, probably not, but if you have this reference article shows which ones are and provides their relevant details.
Exploring the Content Management Systems of Symfony
This Week
Running a Symfony app inside a Docker container has a lot of advantages, but the downside is we have to type a longer command if we want to run the command inside the container. For this purpose, I wrote a small bash script to help me with that.
Run Symfony commands inside a Docker container
Wouter Carabain writes "securing your API endpoints is very important to prevent unauthorized access to your systems. But how do you do this efficiently? Are you going to build a user management system from scratch? Let me introduce you to Keycloak and how to integrate it with API Platform."
Integrating Keycloak with API Platform
Hanane Kacemi continues a series of posts on Symfony and Doctrine.
Dejan Angelov says "Symfony Messenger provides multiple ways for registration and configuration of message handlers. Nowadays, the handlers are usually registered by implementing the component’s MessageHandlerInterface interface, which makes the handlers auto-configurable by default, or by implementing some interface of ours which we can register for autoconfiguration manually. However, with the addition of the attribute's functionality in PHP 8.0, it doesn’t really make sense anymore to use interfaces for the purpose of “describing” our classes. In this article, we’ll explore how we can use our own PHP attributes to register and configure the message handlers."
Using custom PHP attributes for registering and configuring Symfony Messenger handlers
Last Week
Matt Glaman writes in the early days of Drupal 9 most folks were only using PHPStan on their Drupal sites via drupal-check for deprecation checks. I am excited to see more folks using PHPStan directly with phpstan-drupal to perform static analysis and deprecation checks. However, folks are starting to hit some Drupal WTFs when performing static analysis on a magical code base."
Timeless

Sponsored Article
We published our first sponsored article on Symfony Station exploring how Code Execution Monitoring helps you identify bugs and bottlenecks in your Symfony app before your customers do. Like all our articles it is now available via audio.
Why You Should Use Code Execution Monitoring with Symfony
All sponsored articles are for products we have vetted and stand behind. We either use them or would do so if they were applicable to the Symfony Station site.
Gábor Hojtsy says "I apparently released the Drupal configuration schema cheat sheet 7 years ago (wow!) to help people adopt the then new format to describe configuration structure. I keep getting questions and requests about it, so decided to make a major update to it now and bring it to the present day for Drupal 9."
Major Drupal configuration schema cheat sheet update - 7 years later
Houssemeddine Souissi explores the new Symfony Authentication System (Login & Logout) in a fresh 5.4 project in this video and article.
He also looks at RabbitMQ.
Discover RabbitMQ with Symfony 5 Project
Somehow, I missed these two posts from Tomas Votruba. He examines the Symfony HTTP Kernel component and when to use it.
When Symfony Http Kernel is too Big a Hammer to Use
Decomposing Symfony Kernel: What does Minimal Symfony Bundle Do

PHP
This Week
Brent writes "It's the fourth time I'm writing a yearly "PHP in 20XX" post, and I must admit I've never been as excited about it as this year: we've seen awesome new features added to PHP, with stuff like attributes, enums, promoted properties and fibers; and on top of that, the static analysis community is making great progress, my personal favorite feature is PhpStorm now supporting generics when writing code."
Exciting times are ahead, let's take a look at modern-day PHP!"
In this extensive tutorial Eric, the Coder examines the recent additions to PHP.
Backend Developer notes "are lots of new things in PHP and in this article, I will explain what fibers are and why we should use them in our projects."
Jolicode helps us find out how to approach a clone without fear.
The ability to return nulls makes it all too easy to write brittle software.
Andrea Spraga writes "At Slope, writing tests is a relevant part of our day-to-day work. Having to maintain many integrations and end to end (functional) tests, we are continuously required to create and manage fixtures." In this post, he shows us how.
A library-less approach to fixtures in PHP tests
Prosper Yong notes "date and time manipulation is one of a few frequently-experienced challenges of developing web apps in PHP. And one of its most prevalent issues is identifying time disparities and making them readable, such as "one hour ago".
However, handling dates and times — and issues such as this — is greatly simplified by using Carbon; it's a library which reduces lengthy hours of coding and debugging to only a few lines of code."
Lorenzo B says "Every sufficiently complex web application use cookies and sessions. They are two technologies that you absolutely have to know, even if you are not a web developer. Why am I saying that? What are their usages and what should you use and why?
In this article, I will help you get an answer to those questions. Plus, I will show you some PHP functions you can use to implement cookies and sessions."
Cookies and Sessions: A Gentle Introduction With PHP
Anders Björkland continues his series of articles examining the SilverStripe CMS.
Create reviews for Googled books (in SilverStripe)
Eelco Verbrugge writes "in PHP a child class can inherit only from one single parent. This allows a class to reuse methods from vertical hierarchy by extending an Abstract class.
If you like to reuse methods in many classes in horizontal hierarchy, we use Traits. Traits are used to group methods and implement in multiple classes. Traits can't be initiated on its own like a normal class could."
Programming Insider explores PHP Web Frameworks in this article.
Top 5 Fastest-Growing PHP Web Development Frameworks
Last Week
Rafael Bernard Araujo says of PHP Initializers "When I see this new feature, lots of places that use Dependency Injection[3] come to my focus as candidates to be impacted, such as application or infrastructure service classes. As a result, we will write a much cleaner and leaner code without giving up good practices for writing modular, maintainable, and testable software."
PHP 8.1: more on new in initializers

Other
JavaScript developer Marak Squires wasn't happy about not making money from his open-source libraries, so he deliberately corrupted them, leaving programmers and end-users with dead-in-the-water programs. ZDNet gives us the low-down.
When open-source developers go bad
Speaking of open-source, the MIT Technology Review notes that "volunteer-run projects like Log4J keep the internet running. The result is unsustainable burnout, and a national security risk when they go wrong." So, contribute to the PHP Foundation.
The internet runs on free open-source software. Who pays to fix it?
I didn't know this, but Alexandre Daubois tells us that the "Internet truly relies on 13 servers. How is it possible?"
The 13 Master Servers of Internet
Kadeisha Kean says "to inspect or update a web page dynamically, you need to access its elements. Find out how to use DOM selectors to target various parts of your page.
Learn How to Use DOM Selectors
Docker has a new capability.
Introducing SSO for Docker Business
Have you published or seen something related to Symfony or PHP that we missed? If so, please contact us.
That's it for this week. Thanks for making it to the end of another extended edition. I look forward to sharing next week's Symfony and PHP news with you on Friday.
Please share this post. :) Be sure to join our newsletter list at the bottom of our site’s pages. Joining gets you each week's communiqué in your inbox (a day early). And follow us on Twitter at @symfonfystation.
Happy Coding Symfonistas!
Author
![]()
|
Reuben WalkerFounder |
---|