Symfony Station Communiqué - 28 January 2022. A look at Symfony and PHP news.
Tags: symfony, php, drupal, git
Published: 2022-01-28 12:48:38

This article first appeared on [Symfony Station](https://www.symfonystation.com/Symfony-Station-Communique-28-January-2022).

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-21-January-2022) in their [Week of Symfony](https://symfony.com/blog/a-week-of-symfony-786-17-23-january-2022).

**Please note that links will open in a new browser window. My opinions, if I present any, will be in bold.**

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

## SYMFONY

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

Highlight -> "This was a very intense week for Symfony: first we introduced the new Symfony 6 certification exam, then we announced a new and better way to start Symfony projects and finally, we updated Symfony Flex to provide fast, smart Flex recipe upgrades which will simplify a lot upgrading to newer Symfony versions."

[A Week of Symfony #786 (17-23 January 2022)](https://symfony.com/blog/a-week-of-symfony-786-17-23-january-2022)

Ever wondered which Symfony components make Laravel work?

[Here they are](https://symfony.com/projects/laravel).

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

## FEATURED ITEM

It’s safe to say almost every one of us uses Composer and owes a debt of thanks to it. 

In this article Yanick Witschi says “I’ve been working on making Composer faster and more memory-efficient for years and without this blog post, somehow this journey would not have felt like it was complete.”

### [The long journey of making PHP’s Composer memory-efficient and fast](https://medium.com/@yanick.witschi/the-long-journey-of-making-phps-composer-memory-efficient-and-fast-63d12944aaa8)

### This Week

This discovery almost made our Featured Item. I was very excited to find Viewi this week, especially after a frustrating bout with Gatsby. 

It’s a powerful tool for creating reactive applications using only PHP and HTML. In essence, it’s a server-side template engine + frontend framework. You describe all components and logic in PHP and then the tool transpiles them into native JS. 

The project website [viewi.net](https://viewi.net/) details the mechanism of operation and has code examples. And it’s quite fast.

You can also follow a [step-by-step tutorial](https://github.com/ivanvoitovych/tour-of-heroes) and check out the [Symfony integration](https://viewi.net/docs/integrations-symfony). Great stuff.

Anka Bajurin Stiskalov writes “You can create console command-line commands using the Symfony Console component. I needed one for a WordPress plugin skeleton to build a WordPress plugin maker for my team.” She shows us how to:

[Use Symfony Components to Build a WordPress Plugin Maker for CLI - Part 1](https://q.agency/blog/use-symfony-components-to-build-wordpress-plugin-maker-for-cli-part-1)

Abid Ahmad writes “Today I’ll explain how I found multiple vulnerabilities on a web application that used the Symfony Web Framework where Symfony profiler/debug mode was enabled.” Tip → only use profiler in dev environments.

[How I was able to find multiple vulnerabilities of a Symfony Web Framework web application](https://rootintrud3r.medium.com/how-i-was-able-to-find-multiple-vulnerabilities-of-a-symfony-web-framework-web-application-2b82cd5de144)

Merlin Carter and Zoltan Kincses write “Just over a year ago, we published a tutorial titled “ [Serializing data in PHP: A simple primer on the JMS Serializer and FoS Rest](https://insights.project-a.com/serializing-data-in-php-a-simple-primer-on-the-jms-serializer-and-fos-rest-f469d7d5b902?source=friends_link&sk=80f38d344c085467b24cb5da3926b6f6)”. We heard from a few people who found it helpful, so we decided to publish a follow-up.”

[Serializing data in PHP II: A simple primer on database interactions](https://insights.project-a.com/serializing-data-in-php-ii-a-simple-primer-on-database-interactions-a61224d1145)

Yegor Shytikov shows us how to set up Magento eCommerce Multi-Region AWS infrastructure with auto-scaling using AWS Cloud, Terraform, and Terragrunt.

[Magento Global Reference Architecture Terraform Infrastructure as Code (IaC) on AWS Cloud](https://yegorshytikov.medium.com/magento-global-reference-architecture-terraform-infrastructure-as-code-iac-on-aws-cloud-be46e860ee03)

There is lots of Drupal news this week, including its being a digital experience platform rather than just a CMS. In fact, this is one reason we use it for Symfony Station.

We begin with this self-explanatory post.

[Drupal 10 was updated to Symfony 5.4 as a stepping stone to Symfony 6](https://www.drupal.org/node/3259527)

I’ve shared content from Vishwa Chikate before and this is another good one. He says “In this article we will cover how to integrate Drupal 8/9 website with Auth0 Single Sign-On (SSO) platform.”

[Integrating Drupal with auth0](https://medium.com/@vishwa.chikate/integrating-drupal-with-auth0-2074bda2e22)

Stavros Kounis shows us how to:

[Apply Drupal 9 patches with Composer](https://medium.com/appseed-io/apply-drupal-9-patches-with-composer-7b1e511b09fe)

Webwash notes: “The Webform Mailchimp module allows you to send Webform submissions to your Mailchimp list whilst also allowing you to map the Drupal webform fields to MailChimp form fields.”

[Send Webform Submissions to Mailchimp in Drupal](https://www.webwash.net/send-webform-submissions-to-mailchimp-in-drupal/)

### Last Week

As mentioned above:

[More Than a CMS: Drupal in the Age of Digital Experience Platforms](https://evolvingweb.ca/blog/more-cms-drupal-age-digital-experience-platforms)

### Timeless

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

*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](https://www.symfonystation.com/why-code-execution-monitoring-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.*

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

Mauro Chojrin reviews modern tools for PHP developers.

[Modern Tools for PHP Developers](https://blog.logrocket.com/modern-tools-php-developers/)

Alexandre Daubois demystifies one of the most powerful PHP tools you’ll encounter. I learned a lot from this one.

[Master PHP Iterators](https://medium.com/geekculture/master-php-iterators-46cf4e495d43)

This is a fantastic article on PHP fibers from Robert Landers.

[Thoughts On PHP Fibers](https://withinboredom.info/blog/2022/01/04/thoughts-on-php-fibers/)

Here’s a yearly review from the team behind FrameworkX and ReactPHP.

[2021 – A Year In Review](https://clue.engineering/2022/2021-in-review)

Anders Björkland writes “Being me, I like to explore new subjects and see how far I can go with my current proficiency. I come from a background where all I've ever done has almost exclusively been "*object-oriented*", but now being left without `Doctrine` (a popular PHP ORM) I saw an opportunity to build similar (but way more simplistic) functionality on my own.”

[How I stumbled onto the Reflection API](https://dev.to/andersbjorkland/how-i-stumbled-onto-the-reflection-api-443m)

Erik the Coder continues his Modern PHP Crash Course with conditionals, loops, and functions.

[PHP crash course : Conditionals, Loops and Functions](https://dev.to/ericchapman/php-crash-course-conditionals-loops-and-functions-ck6)

Hugo Demont says “During different searches on the internet, I found that little information is on the subject of reading information from a JSON file.”

[Data management with JSON files and PHP](https://dev.to/hugodemont/data-managementwithjson-files-and-php-3413)

Andrew Schmelyun writes “If you've worked in a PHP project, chances are you've dealt with the Composer package manager. As a full-stack developer, I think it's one of the better ones that I use on a regular basis, consistently improving while remaining *relatively* simple.

One of the more difficult things to do with it though is adding a local package for use in a larger PHP project. Whether you've downloaded a private source, or are developing a package locally, this method will work to get your package into Composer.”

[Installing a Local Composer Package in Your PHP Project](https://aschmelyun.com/blog/installing-a-local-composer-package-in-your-php-project/)

This one is self-explanatory. 

[VSCode PHP Debug Release January 2022](https://damjan.cvetko.org/blog/2022-01-22-vscode-php-debug-release-january-2022/)

Open Swoole v4.10.0 is a major release with new Coroutine Selector API co::select(), HTTP2 SSE and bug fixes, sleep/usleep data type fixes, and enhancements.

[Open Swoole 4.10.0 Released](https://openswoole.com/article/openswoole-4.10.0-released)

Jordi Bassaganas notes “Sometimes when working in a team of multiple web developers on a brand new PHP project, each of them using a different OS, you may come across a problem when running `composer install`.” He shows us how to fix it.

[Installing Multiple Alternative Versions of PHP on Ubuntu](https://medium.com/geekculture/installing-multiple-alternative-versions-of-php-on-ubuntu-b2acc7af3260)

And Anton Röhm shows us how to:

[Deploy your PHP Codebase with Ansible and GitHub Actions](https://laravel-news.com/deploy-your-php-app-with-ansible-and-github-actions)

###This Month

Doctrine ORM released an update.

[Doctrine 2.11](https://www.doctrine-project.org/2022/01/11/orm-2.11.html)


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

## OTHER

If you know a plugin developer, give them a shoutout tomorrow.

[Today is Plugin Developers Appreciation Day](https://blog.jetbrains.com/platform/2022/01/plugin-developers-appreciation-day/).

GitHub’s ReadMe project takes a look at:

[The good, the bad, and the ugly of making decisions in open-source](https://github.com/readme/guides/making-decisions-in-OSS)

Postman says “A well-defined API lifecycle is essential for taking full advantage of operating on an API platform and being able to effectively govern hundreds or thousands of APIs across many different teams. Having a shared understanding of what the API lifecycle is across your org, and possessing a common vocabulary for describing it, will help your teams get on the same page when developing APIs with greater productivity, quality, and governance needed to drive your enterprise into the future.”

[The 8-Point API Lifecycle Blueprint](https://blog.postman.com/api-lifecycle-blueprint/)

Stephen Turner writes “One of the topics users of Docker Desktop often ask us about is file sharing. How do I see my source code inside my container? What’s the difference between a volume and a bind mount? Why is file sharing slower than on Linux, and how can I speed it up? In this blog post, I’ll cover the options you have, some tips and tricks, and finish with a sneak preview of what we’re currently working on.”

[File Sharing with Docker Desktop](https://www.docker.com/blog/file-sharing-with-docker-desktop/)

David Scott notes “Modern applications make extensive use of networks. At build time it’s common to `apt-get/dnf/yum/apk install` a package from a Linux distribution’s package repository. At runtime an application may wish to `connect()` to an internal [postgres](https://github.com/docker/awesome-compose/tree/master/nginx-golang-postgres) or [mysql](https://github.com/docker/awesome-compose/tree/master/sparkjava-mysql) database to persist some state, while also calling `listen()` and `accept()` to expose APIs and UIs over TCP and UDP ports. Meanwhile developers need to be able to work from anywhere, whether in an office or at home or on mobile or on a VPN. Docker Desktop is designed to ensure that networking “just works” for all of these use-cases in all of these scenarios. This post describes the tools and techniques we use to make this happen, starting with everyone’s favorite protocol suite: TCP/IP.”

[How Docker Desktop Networking Works Under the Hood](https://www.docker.com/blog/how-docker-desktop-networking-works-under-the-hood/)

I ran across an interesting tool this week, Spin. they say “Stop wasting time fixing production issues you've already solved. Spin is a bash utility that improves the user experience for teams using Docker. Replicate any environment on any machine, regardless of whether they are running macOS, Windows, or Linux. Centralize your infrastructure from a single configuration file using Docker.”

[Spin](https://serversideup.net/open-source/spin/)

Git 2.35 was released.

[Highlights from Git 2.35](https://github.blog/2022-01-24-highlights-from-git-2-35/)

Daniel Diaz tells us “As a web developer, it’s extremely important to know how to use Git for web development properly. We’re not just talking about “git add”, “git commit”, and “git push”. You should know the whole workflow of creating a web project with Git.”

[Git for Web Development](https://kinsta.com/blog/git-for-web-development/)

We’ll end with a MySQL tip. Joshua Otwell reminds us “If we aren’t mindful, `NULLs` have the potential to *wreck* our query results. Learning how to correctly filter for `NULL` in the `WHERE` clause using either `IS NULL` or `IS NOT NULL` according to the business logic context at hand, is but one part of learning to handle `NULLs`.”

[Transform NULL values with the MySQL COALESCE function](https://levelup.gitconnected.com/transform-null-values-with-the-mysql-coalesce-function-6802033900ee)

Have you published or seen something related to Symfony or PHP that we missed? If so, [please get in touch](https://www.symfonystation.com/contact).

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. ;)

Happy Coding Symfonistas!

## AUTHOR

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

### Reuben Walker

Founder

Symfony Station