Symfony Station Communiqué - 04 March 2022. A Look at Symfony and PHP news!
Tags: symfony, php, codeception, drupal
Published: 2022-03-04 16:04:50

This post originally [appeared on Symfony Station](https://www.symfonystation.com/Symfony-Station-Communique-4-March-2022). [Explore our news communique archives](https://www.symfonystation.com/Communiques/) for evergreen content. And please sign up for our newsletter to get the latest news communiques and original content delivered to your inbox.

Welcome to this week's Symfony Station Communiqué. It's your weekly review of the most 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é](https://www.symfonystation.com/Symfony-Station-Communique-25-February-2022) in their [Week of Symfony](https://symfony.com/blog/a-week-of-symfony-791-21-27-february-2022).

**Please note that links will open in a new browser window. My opinions and there are plenty of them, will be in bold.**

![https://symfonystation.com/sites/default/files/inline-images/symfony_black_02_0.png](https://symfonystation.com/sites/default/files/inline-images/symfony_black_02_0.png)

As always, we will start with the official news from Symfony.

Highlight ->“This week, Symfony announced that Symfony 6.1 will require PHP 8.1.  This is needed to fix some issues related to PHP preloading. We also decided to extend Symfony 6.0 maintenance by an additional 6 months to give you more time to prepare the migration to PHP 8.1. Finally, Symfony announced the last talks and speakers for the SymfonyLive Paris 2022 conference.”

[A Week of Symfony #791 (21-27 February 2022)](https://symfony.com/blog/a-week-of-symfony-791-21-27-february-2022)

Several updates were released.

[Symfony 6.0.5 released](https://symfony.com/blog/symfony-6-0-5-released)

SymfonyCasts has new EasyAdmin tutorials and a link for how to help Ukraine.

[This week on SymfonyCasts](https://5hy9x.r.ag.d.sendibm3.com/mk/mr/R1E9WMQc4SOSTiENjhg-g79nTUfxdwaQW_iDMOxjHWmlt61HUNxvdzmpl_UdzOIR30Qqgo5u8ZnvzOpGH1EgzpHNanWy3WOSV7HW-lKJ__pLEgydQiXxaeP5DoGEns5-OLgYddGmdQ)

Discover all the talks, keynotes, and speakers scheduled at the French SymfonyLive conference in Paris on April 7-8 2022.

[The entire conference schedule for SymfonyLive Paris 2022 is out](https://symfony.com/blog/the-entire-conference-schedule-for-symfonylive-paris-2022-is-out)

Alexandre DuBois and SensioLabs have started a blog series on Medium named Symfony Internals.

[Symfony Internals #1: Inside the Framework Configuration](https://medium.com/the-sensiolabs-tech-blog/symfony-internals-1-inside-the-framework-configuration-8235ec3fecdf)

And hotel rooms are available for SymfonyCon 2022 in Paris.

[Book your hotel room at Disneyland Paris during SymfonyCon Disneyland Paris 2022](https://symfony.com/blog/book-your-hotel-room-at-disneyland-paris-during-symfonycon-disneyland-paris-2022)

![https://symfonystation.com/sites/default/files/inline-images/Featured-Item_1_0.png](https://symfonystation.com/sites/default/files/inline-images/Featured-Item_1_0.png)

## Featured Post

This week’s was a no-brainer. Symfony has this on the war crimes in Ukraine:

“I like to say that an Open-Source project is nothing without a user community. You can have the best technical product ever, if nobody is using it, if nobody maintains it, if nobody spreads the word about it, it's useless. It's merely a proprietary project with an Open-Source license attached to it.

**Symfony is first and foremost a community.**

Today, the Symfony community is under attack.

Ukraine is in the top 10 countries in terms of visitors on this website (about 100.000 unique users during the last year alone). And we can see the traffic drop since last week :(

We have more than 2,000 registered SymfonyConnect users in Ukraine.

The Symfony book is already available in Ukrainian for both Symfony 5.4 and 6.0. It was one of the very first translations available thanks to the hard work of wonderful Ukrainian developers. The [PDF book in Ukrainian](https://leanpub.com/symfony6-shvydkyi-start) on Leanpub is now free and it will stay free forever.

If you enjoy watching Symfony videos on [SymfonyCasts](https://symfonycasts.com/stop-war), you can thank Ryan and Leanna from the US, but also Victor from Ukraine.”

Get the rest with this link.

**[Symfony stands with Ukraine](https://symfony.com/blog/symfony-stands-with-ukraine) 💙💛**

**I provide my pissed-off take in the Other section below.**

## Symfony

### This week

Since Russia has more than its fair share of bad actors and criminals, it’s time to beef up your Symfony Security.

[Documentation](https://symfony.com/doc/current/security.html).

[SymfonyCasts](https://symfonycasts.com/search?q=security&sort=most%20relevant&page=1&types=course).

Here at Symfony Station, we published a new article reviewing the eCommerce solutions using Symfony.

[Exploring the 12 eCommerce Platforms of Symfony](https://www.symfonystation.com/exploring-12-eCommerce-Platforms-Symfony)

Stefan Alletti shows us  an “Example of a Symfony application using Domain-Driven Design (DDD) and Command Query Responsibility Segregation (CQRS) principles while keeping the code as simple as possible.”

[DDD, Hexagonal Architecture & CQRS with Symfony and Doctrine](https://medium.com/@stefanoalletti_40357/ddd-hexagonal-architecture-cqrs-with-symfony-and-doctrine-fa7aead2aee2)

Akashic Seer is back with this entertaining post.

[Symfony Messenger vs EventDispatcher learn more](https://akashicseer.com/web-development/symfony-messenger-vs-eventdispatcher-learn-more/)

Wooter Carabain tells us “Testing your code is very important as a software developer. It not only helps you prevent bugs when you’re adding or changing features, but a good test suite also gives you and your customers a lot of confidence in the stability of the product.

Testing in Symfony is fairly easy using the Symfony`/PHPUnit-bridge` package. You’ll write classes containing your tests and run them, no problem. But creating the classes adds a lot of boilerplate code. What if I told you it’s possible to get rid of a lot of boilerplate code and have a nice and elegant way of writing your tests as if you’re writing an English sentence? This is where [Pest](https://pestphp.com/) comes in!”

[Using the Pest testing framework in Symfony](https://woutercarabain.com/webdevelopment/using-the-pest-testing-framework-in-symfony/)

Hantsy writes “PHP 8.1 introduces the official Enum **support. Doctrine brought Enum type support in its ORM framework, and Symfony added serialization and deserialization support of an Enum type.” He explores:

[Using Enum in Symfony](https://itnext.io/using-enum-in-symfony-8f32d9cfaa0f)

Guillaume continues his series we have been featuring with:

[CMS en Symfony : le routing](https://dev.to/gbtux/cms-en-symfony-le-routing-2ngo)

Mateo Fuzul shows us “why it’s important to translate your application and how you can do it using the Symfony translation package.”

[Nuts & bolts of internationalization and localization with Symfony](https://blog.undabot.com/nuts-bolts-of-internationalization-and-localization-with-symfony-c06cd3ba5697)

Jakob Perry makes:

[The case for Drupal >=9](https://japerry.medium.com/the-case-for-drupal-9-dbfa45c52f9e)

Kevin Wenger shows us how to:

[How to Migrate content into Drupal Paragraphs](https://wengerk.medium.com/how-to-migrate-content-into-drupal-paragraphs-aca6664905f9)

And Josh Estep demonstrates:

[How to Ensure Images are Optimized in Drupal](https://www.prometsource.com/blog/how-ensure-images-are-optimized-drupal)

We promised to share the Florida DrupalCamp presentations when they became available.

[Here they are](https://www.youtube.com/playlist?list=PLVkxWtGE94fmeQq-gaEAtTzytgai2BB-t)

The slides can be found on the [individual session pages](https://www.fldrupal.camp/schedule/day-2).

### Last Week

Jacob Rockowitz says, “There are plenty of resources in the Drupal community for learning how to build a module. This article is not about building a custom module. My goal is to provide a guide for auditing and reviewing a Drupal module. In doing so, I'm aiming to help you achieve your goal to understand, document, clean up, and hopefully improve a Drupal module.”

[A guide to auditing, reviewing, and improving a Drupal module](https://www.jrockowitz.com/blog/audit-drupal-module)

Joseph Udonsak finishes a series on Test Driven Design with “In this, the third and final part in the series, you'll implement the last feature of the application using TDD, transaction history. In addition to that, you'll learn about the concept of test coverage and how it impacts application reliability.”

[A Beginner's Guide to Test-Driven Development with Symfony and Codeception - Part 3](https://www.twilio.com/blog/beginners-guide-test-driven-development-symfony-codeception-part-3)

### Last Month

Strangebuzz has this for us “In this post, we see a simple solution to mock API calls with the Symfony HTTP client, declare a scoped HTTP client, and test it with or without mock. Let's go!”

[Simple API mocking with the Symfony HTTP client](https://www.strangebuzz.com/en/blog/simple-api-mocking-with-the-symfony-http-client)

### Timeless

![https://www.symfonystation.com/sites/default/files/inline-images/Horizontal-Inspector-Tagline-Logo_0.png](https://www.symfonystation.com/sites/default/files/inline-images/Horizontal-Inspector-Tagline-Logo_0.png)

*Sponsored Article*

We published our third sponsored article on Symfony Station exploring **how to Implement Code Execution Monitoring for your Symfony apps via Inspector.** Like all our articles it is now available via audio.

[How to Implement Code Execution Monitoring for your Symfony apps via Inspector](https://www.symfonystation.com/how-implement-code-execution-monitoring-symfony-inspector)

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

![https://symfonystation.com/sites/default/files/inline-images/php-logo_4.png](https://symfonystation.com/sites/default/files/inline-images/php-logo_4.png)

## PHP

### This Week

Michał Romańczuk writes “SOLID, this acronym was coined by Michael Feathers, it represents the five basic principles of object-oriented programming developed by Uncle Bob.

Most programmers probably know this acronym. But it seems to me that a minority can decode it.”

[Solid PHP - SOLID principles in PHP](https://dev.to/accesto/solid-php-solid-principles-in-php-1n7b)

Moath Omarsa has a good review of PSR.

[Intro To PSR (PHP standards recommendations)](https://moath-omarsa.medium.com/intro-to-psr-php-standards-recommendations-9f55212bc7bd)

Italo Baeza Cabrera says, “testing doesn’t have to be a 1,000 line per-test odyssey.”

[PHP: 10 tips to use for Mockery](https://darkghosthunter.medium.com/php-10-tips-to-use-for-mockery-33673ba01321)

He also expands on the “PHP is dying” misconception.

[Two years from PHP “dying”: There are other tools](https://darkghosthunter.medium.com/two-years-from-php-dying-there-are-other-tools-77730387e2ff)

**Always use the best tool for the job. Sometimes it’s PHP. At other times it isn’t.**

The March issue of PHP Architect is out.

[March Issue](https://www.phparch.com/magazine/2022/03/world-backup-day/)

Zend details “`Dockerfile`, showing how you can use the same file to create different custom PHP Docker images, and demonstrates some additional techniques you can use.”

[PHP Docker Images Tips and Tricks](https://phpweekly.us15.list-manage.com/track/click?u=dbfcd660859177225962fa83e&id=3ec66980ba&e=842b163f15)

Vincy shows us how to build a:

[PHP Login Form with MySQL database and form validation](https://phppot.com/php/php-login-form/)

Rias has this for us:

[Running PHPUnit tests in parallel using GitHub actions](https://rias.be/blog/running-phpunit-tests-in-parallel-using-github-actions)

### This Year

Anand Rajendran writes “Object-oriented programming is about creating objects that contain both data and functions.” This article is a good review of OOP.

[PHP — Object-Oriented Programming](https://medium.com/@imadevguyanand/php-what-is-oop-413b566f9a94)

![https://symfonystation.com/sites/default/files/inline-images/code-logo_3.jpeg](https://symfonystation.com/sites/default/files/inline-images/code-logo_3.jpeg)

## Other

**It’s time for everyone in the free world to start attacking the Russian government and its cadre of war criminals, thugs, and all-around dipshits. It’s the way the outside world helped end apartheid and it’s what will work here eventually. We need to keep it up until the Russian people depose their latest tyrants or the Russian military disposes of Putin and withdraws from Ukraine.**

**I am doing what I can to help:**

- **Sponsoring [Drupal Camp Kyiv](https://drupalcampkyiv.org/en) in June even though I have no plans to attend and it may not take place.**
- **[Buying books from Smashing Dev](https://www.smashingmagazine.com/printed-books/checklist-cards/) that donate profits to supporting Ukraine.**
- **[Donating to the Ukraine Army](https://war.ukraine.ua/donate/) so they can prevent Russians from murdering their citizens.**

**By the way, I am opposed to all fascists and communists be they in Russia, North Korea, China, Europe, the Middle East, Asia, Africa, or the Americas.**

The Tech Policy Press writes “Imagine it is September 1939. Germany has invaded Poland on the false premise that Poland has joined with Britain and France in a bid to attack it.

But add a tweak to the timeline- imagine there is a set of major publishers based in the United States who channel Hitler’s propaganda campaign across the globe, including to a substantial American audience. Imagine Hitler has built an incredible capacity to manipulate media, use out of context images and film, create the impression of support by inventing false personas, and engage in a variety of other tactics that have been observed to advance his aims, taking advantage of the capabilities these publishers provide and the lax enforcement of their own standards. Imagine that every official and government entity loyal to Hitler also has a deal with these publishers, and their means to easily reach a global audience instantly.

Would you demand those publishers pull the plug on Hitler, or would you defend the German state’s right to some confused notion of “free speech,” even as Hitler sets out to destroy the lives of millions?

That is the situation Google, Facebook, Twitter, and other U.S. tech firms are faced with right now, as they host, distribute, amplify, and in some cases help monetize **Vladimir Putin’s propaganda outlets –  including Russian state media that are already registered as foreign agents, as well as the official accounts of Putin’s government and its officials.

[Silicon Valley Must Pull the Plug on the Kremlin](https://techpolicy.press/silicon-valley-must-pull-the-plug-on-the-kremlin/)

Rest of World has an overview of Big Tech’s tepid actions to date. Most of them have been taken because they are legally required.

[Here’s a list of all the tech companies taking action against Russia](https://restofworld.org/2022/list-tech-companies-taking-action-russia/)

Compare the above to what open-source communities like WordPress are doing.

[How the WordPress Community Is Supporting Ukraine’s Resistance Against Russian Invasion](https://wptavern.com/how-the-wordpress-community-is-supporting-ukraines-resistance-against-russian-invasion)

Venture Beat writes “Mykhailo Fedorov, the country’s vice prime minister, announced on Twitter, “We are creating an IT army.” “We need digital talents,” wrote Fedorov, who also holds the title of
minister of digital transformation — sharing a link to a Telegram channel where he said operational tasks will be distributed. “We continue to fight on the cyber front.”

[Going on offense: Ukraine forms an ‘IT army,’ Nvidia hacks back](https://venturebeat.com/2022/02/26/going-on-offense-ukraine-forms-an-it-army-nvidia-hacks-back/)

**If you have hacking skills, fucking join this.**

The State notes “Anonymous, a renowned international hacker group, has declared a cyberwar against Russia, which is accused of its cyberattacks against Ukraine. President Biden has also reportedly been given options for “massive cyberattacks” to target Russia and complicate its invasion.”

[Anonymous declares cyberwar against Putin amid Ukraine’s invasion. What does that mean?](https://www.thestate.com/news/nation-world/world/article258820668.html)

And it did not take them long to achieve results.

[Anonymous leaks Russian Ministry of Defense database in major victory during a cyberwar](https://metro.co.uk/2022/02/26/anonymous-leaks-russian-mod-database-in-major-victory-during-cyberwar-16179039/?ito=flipboard)

[Hacktivists Stoke Pandemonium Amid Russia’s War in Ukraine](https://www.wired.com/story/hacktivists-pandemonium-russia-war-ukraine/)

As mentioned above in addition to going on the offensive, the non-thug world needs to up its defensive game.

[API security methods developers should use](https://www.techtarget.com/searchsecurity/feature/API-security-methods-developers-should-use)

A New York Times opinion piece explores America’s vulnerability to cyber-attacks.

[I’ve Dealt With Foreign Cyberattacks. America Isn’t Ready for What’s Coming.](https://www.nytimes.com/2022/03/04/opinion/ive-dealt-with-foreign-cyberattacks-america-isnt-ready-for-whats-coming.html?campaign_id=9&emc=edit_nn_20220304&instance_id=54834&nl=the-morning&regi_id=132694739&segment_id=84596&te=1&user_id=9859d1b5f2804acae2a0ccdde6341ccb)

The Washington Post reports that fortunately:

[The dire predictions about a Russian cyber onslaught haven’t come true in Ukraine. At least not yet.](https://www.washingtonpost.com/technology/2022/02/28/internet-war-cyber-russia-ukraine/)

Also, fortunately, Platformer reports:

[The internet is a force multiplier for Ukraine](https://www.platformer.news/p/the-internet-is-a-force-multiplier)

In less depressing news, Florian Jaton sheds light on the human side of algorithms.

[Here’s how algorithms are made](https://thenextweb.com/news/how-algorithms-are-made)

Marc Andrews writes “When creating efficient, accessible, and beautiful UIs, it takes only the smallest tweaks to improve your designs.

In this follow-up article, I’ve brought you another selection of easy to put into practice UI & UX micro-tips.

Tips that can, with little effort, help improve both your designs and the user experience.”

[UI & UX Micro-Tips: Best of 2021](https://www.marcandrew.me/ui-ux-micro-tips-best-of-2021/)

CSSUI, a library that replaces some JS functionality with CSS, looks like a great tool. **At least to me, a JS critic.**

[2022 - Product Roadmap](https://www.cssui.dev/blog/2022-product-roadmap/)

Damir Kotorić pontificates on:

[The Future of User Interface Design: Next-generation UI Tools](https://www.toptal.com/designers/ui/future-ui-design)

Mozilla and others announced “Interop 2022 is a cross-browser initiative to find and address the most important interoperability pain points on the web platform. The end result is a public metric that will assess progress toward fixing these interoperability issues.”

[Announcing Interop 2022](https://hacks.mozilla.org/2022/03/interop-2022/)

C.S. Rhymes writes “GitHub offers a dependabot service that can let you know of any potential security issues with your dependencies and automatically create a Pull Request for you. This works great without any configuration if you have a repo that contains npm, composer or gem dependencies, but you may need additional configuration if your lock files aren’t in the root directory, or in separate directories in the case of a monorepo.

This article will guide you through the basics of creating your configuration for dependabot so it can correctly analyze your dependencies and automatically create Pull Requests for you.”

[Using GitHub Dependabot with a Monorepo](https://dev.to/chrisrhymes/using-github-dependabot-with-a-monorepo-5do6)

To wrap up, Joshua Otwell has this for us:

[Quick SQL Snippets in MySQL Workbench](https://joshuaotwell.com/quick-sql-snippets-in-mysql-workbench/)

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](https://www.symfonystation.com/contact). Joining gets you each week's communiqué in your inbox (a day early). And [follow us on Twitter at @symfonfystation](https://twitter.com/symfonystation).

Do you own or work for an organization that would be interested in our promotion opportunities? If so, [please contact us](https://www.symfonystation.com/Contact). We’re in our infancy so it’s extra economical. ;)

More importantly, if you are a Ukrainian company with coding-related products, we can provide you free promotion. Even though it's for the WordPress ecosystem, we’re starting with [Crocoblock](https://crocoblock.com/). They make booking and eCommerce blocks.
 

![crocoblock.png](https://symfonystation.com/sites/default/files/inline-images/crocoblock.png)

And within the Symfony ecosystem [Codeception](https://codeception.com/), which “collects and shares best practices and solutions for testing PHP web applications. With a flexible set of included modules tests are easy to write, easy to use, and easy to maintain.”

![codeception.jpg](https://symfonystation.com/sites/default/files/inline-images/codeception.jpg)

Keep going Symfonistas!

![https://symfonystation.com/sites/default/files/inline-images/Reuben-Blur.jpg](https://symfonystation.com/sites/default/files/inline-images/Reuben-Blur.jpg)

**Reuben Walker**

Founder
Symfony Station