Sorry, you need to enable JavaScript to visit this website.
Skip to main content

Symfony Station Communiqué - 12 August 2022

A white paragraph.

 


 

Symfony Station Logo

symfony logo

 

 


 

Illustration of the surface of an alien planet.

Welcome to this week's Symfony Station Communiqué. It's your review of the essential news in the Symfony and PHP development communities. We also cover the cybersecurity world in detail each week.

Take your time and enjoy the items most relevant and valuable to you.

As always, thanks to Javier Eguiluz and Symfony for sharing our last communiqué in their Week of Symfony.

My opinions will be in bold.


Many of the items we curate are on Medium. I recommend investing in membership as you can access everything you want to read. It’s a small investment in boosting your career. As may have noticed non-members can only access a limited number of articles per month.

Become a member here! The compensation we receive from your use of this link helps pay for our weekly communiqué.


Symfony

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

Highlight -> “This week, the upcoming Symfony 6.2 version added features such as allowing to extend the #[When] attribute, adding conditional types to conditional configuration builders, introduced a new messenger:count command that lists the pending messages per transport and improved the #IsGranted attribute to allow using expressions.“

A Week of Symfony #814 (1-7 August 2022)

Symfony announced:

Zoom in on Advanced Security with Symfony workshop at SymfonyCon Disneyland Paris 2022

SymfonyCasts finishes their Symfony 6 Fundamentals Course and announce a new one.

This week on SymfonyCasts

Featured Item

Featured Item graphic

While not the most important post of the week, we think our latest article on local PHP development tools is useful. Please read:

Dream Universal, Develop Local: A look at PHP Local Development Tools.

This Week

Wordsys Technology shares:

5 Reasons Why You Should Use Symfony Framework for Projects

Saeid Raei explores:

Symfony Testing: using Repository pattern without connecting to database

Dariel Vicedo continues his series:

Creating a Symfony project from zero to success in 52 weeks (week 5)

In Francais Yann Dardot examines:

Enum php 8.1, et les librairie symfony. (Doctrine, graphql-php, api platform)

Big Data Analytics News looks at:

How Symfony Hosting Works Better With Cloudways Managed Hosting

Randy Fay needs your help testing a DDEV and Platform.sh integration.

GitHub - platformsh/ddev-platformsh: Add integration with Platform.sh hosting service

CMSs

bitExpert explores:

Sulu Headless exposing form config

Drupal made:

CSS and JavaScript aggregation performance improvements

Matt Glaman looks at:

ReactPHP for Drupal deployments and workers

Acquia is:

Evaluating Drupal Community Modules

Jacob Rockowitz is:

Defining the goals of the Schema.org Blueprints module

php[architect] has:

Drupal Dab: Creating Content Types in Drupal 9 Subscription required.

Ani Mahant shares:

A Step-by-Step Tutorial to Customize Drupal SearchAPI Facets without AJAX

James Oakley has some Drupal advice for:

Keeping track of upstream security issues

Previous Weeks

specbee shares:

Setting up Responsive Images in Drupal 9 - A Step-by-Step Guide

Promet Source examines:

How to Fix Common Web Accessibility Barriers in Drupal

PHP logo

PHP

This Week

stitcher.io documents:

Deprecated dynamic properties in PHP 8.2

Igieborelvis continues his SOLID PHP series:

SOLID : Fundamental Principles of Software Development using PHP (4)

Derick Rethans has the:

Xdebug Update: July 2022

Bentil Shadrack has a good reminder:

Cross-site Scripting (XSS) and ways to prevent it in PHP applications

Richard Dobroň shows us how to:

How to create your first composer package? 🐘

In Francais Karim Pinchon explores:

PHP - Rector

Matthias Noback looks at:

Simple Solutions 1 - Active Record versus Data Mapper

Andrew Schmelyun details:

The difference between Traits, Interfaces, and Abstract Classes in PHP

The esteemed Kévin Dunglas shows us how to:

Securely Access Private Git Repositories and Composer Packages in Docker Builds

Farhan Tanvir shares yet another:

7 Useful PHP Libraries You Should Use in Your Next ProjectーPart- 4

.com software shares:

Circuit Breaker pattern in PHP

Clean code tricks in PHP everyone should follow

Code logo

Other

Please visit our Support Ukraine page to learn how you can help kick Russia out of Ukraine (eventually).

The cyber response to Russia’s War Crimes

Protocol reports:

Meta has banned a pro-Russia troll group that organized on Telegram

Rolling Stone reports:

Pro-Putin Trolls Supporting the Ukraine Invasion Can't Stop Screwing Up

The Hill reports:

Putin’s war is economic suicide

The Evil Empire Strikes Back

PCMag reports:

Researchers Look Inside Russian Malware Targeting Ukrainian Power Grid

Useful idiots Amnesty International have criticized Ukraine for housing troops in abandoned schools and daring to shell Russian aircraft in occupied Crimea.

Useful idiots Amnesty International have criticized Ukraine for housing troops in abandoned schools and daring to shell Russian aircraft in occupied Crimea.

The Guardian reports:

Zelenskiy rebukes Amnesty for accusing Ukraine of endangering civilians

Russia’s private military contractor Wagner comes out of the shadows in Ukraine war

Wired reports:

An Attack on Albanian Government Suggests New Iranian Aggression

The US Offers a $10 Million Bounty for Intel on the Conti Ransomware Gang

Cybersecurity/Privacy

PC Mag reports:

US Sanctions 'Tornado Cash' for Laundering Crypto Funds for North Korea

Decipher reports:

After Log4j, Efforts to ‘Uplift’ Open Source Ecosystem Continue

TechCrunch reports:

Twitter fixes security bug that exposed at least 5.4 million accounts

Twilio hacked by phishing campaign targeting internet companies

Protocol reports:

The SEC's cyberattack reporting rules are seeing fierce opposition. CISA is poised to do better.

ZDNet reports:

Cloudflare was the target of a sophisticated phishing attack. Here's why it didn't work

Computer Weekly reports:

GitHub targets vulnerable open source components

secure.software reports:

NVD Analysis 2022: Why you need to modernize your software security approach

Tech Republic reports:

Cisco reveals cyberattack on its corporate network

More

infoworld shares:

Visual Studio vs. Visual Studio Code: How to choose

The Register reports:

GitLab U-turns on deleting dormant projects after backlash

Nevin Katz reveals:

My Git Analogy Moment

As a Git-challenged person, I can say it’s a good one.

In Francais Karim Pinchon shares advice for students:

Conseils aux étudiants en développement logiciel

Utkarsh Mathur has a great history piece on the:

Rise of Open Source.

Venture Beat shares:

3 ways every company can get started with an open-source software strategy

Ethan Marcotte looks at the source of truth in design systems.

Truthish.

Accessibility and Frontend Illuminati Jason Knight looks at:

Creating Custom Icon Webfonts

And in douchebag news:

Molly White tried to tell you Web3 was not going great before the crypto crash

Dev Class reports:

‘The best thing we can do today to JavaScript is to retire it,’ says JSON creator Douglas Crockford

Amen, brother.

That’s it for this week. Please share this communiqué.

Also, 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).

If you don't already follow us on Twitter at @symfonfystation.

And since it may be turning into a full-scale dumpster fire, we are now on Mastodon as well at @symfonystation@phpc.social. Consider joining the @phpc.social instance.

Do you own or work for an organization that would be interested in our promotion opportunities? If so, please get in touch with us. We’re in our infancy, so it’s extra economical. 😉

More importantly, if you are a Ukrainian company with coding-related products, we can offer free promotion on our Support Ukraine page. Or, if you know of one, get in touch.

Keep coding Symfonistas!

 

Visit our Communiqué Library

You can find a vast array of curated evergreen content.

 

Author

Reuben Walker photo

 

Reuben Walker

Founder
Symfony Station

 

 

 


 

Symfony Station Communiqué - 18 February 2022

A white paragraph.

A white paragraph.

 


 

Symfony Station Logo

symfony logo

 

 


 

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é 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, the upcoming Symfony 6.1 version deprecated the $defaultName property in Console commands and added a new cache:pool:invalidate-tags command to ease the management of cache pools. Meanwhile, we discussed bumping PHP to 8.1in Symfony 6.1. Lastly, we announced the first speakers of SymfonyLive Paris 2022 and the Call for Papers for the international Symfony conferences.”

A Week of Symfony #789 (7-13 February 2022)

 

One of Symfony's sibling companies expands its blogging.

SensioLabs started a Medium account.

Be sure to follow us on Medium as well.

 

Symfony has a new Twig certification available.

Introducing the Twig 3 Certification

 

SymfonyCasts is producing some great EasyAdmin Content lately.

This week in SymfonyCasts

 

Discover more talks and speakers selected for SymfonyLive Paris 2022, the Symfony conference organized in French on April 7-8, 2022.

Discover more talks and speakers selected for SymfonyLive Paris 2022

 

Prior to the SymfonyLive Paris 2022 conference, Symfony is providing several workshops on April 5-6 2022. Discover all the workshops on offer. Register for the workshops via your OPCO and Datadock.

All the pre-conference workshops at SymfonyLive Paris 2022 are announced (en francais)

 

The team released a new edition of the Symfony Fast Track book. Purchasing one is the most economical way to financially support the framework.

The Symfony Fast Track book now available for Symfony 5.4 and 6.0

What's crazy is that I just bought the French version of the previous edition (5.2) to bone up my language skills for SymfonyCon Paris. Now, where is my credit card?

 

Featured Item Graphic

 

FEATURED ITEM

 

We shared a similar post on server-side rendering tech last week. This one is more applicable to the Symfony universe.

You do not need to be Ruby on Rails developer to read this. The ideas around Hotwire and server-side rendering are making waves across different web development stacks - PHP/Laravel or Symfony, Elixir/Pheonix, Python/Dyango have equivalent tech that implements Hotwire. Even React has added support for server-side rendering it seems.

All About Hotwire and Turbo

 

This Week

 

In a two-part series, Ingo Steinke says, “Coming back to Shopware development after a while, I have to recap how to start the server, how to use the command-line interface, and which notation to use for namespaces and services in which file.”

Learning in public

Shopware 6 development recap

 

From Sergii Demianchuk here’s the first in a series of articles looking at Using Elasticsearch with Symfony.

Elasticsearch with Symfony

 

Laurent Voullmier writes “In this post, I will use Keycloak, an IAM implementing OpenId Connect as an SSO. The features and settings of Keycloak are many (other popular identity providers like Twitter, Facebook, and so on, 2FA, …). Here, we are going to use users directly registered in Keycloak.”

Let’s play with the Symfony new security system: OpenId Connect with Keycloak

 

The Symfony-base eCommerce platform Sylius has a new release.

New! Sylius 1.11 – a lovable release with catalog promotions

 

Thomas Dutrion recently ran into some trouble with Flysystem. "Upgrading to PHP 8.1 and Symfony 6 has been a breeze… Until I had to use league/flysystem-google-cloud-storage!"

Flysystem Google Cloud Storage dependency issue

 

Golems shows us how to:

Write Better Code with Typed Entity

 

Mike Herchel says, “Within Drupal 10 core, we’re implementing a new auto-filling CSS Grid technique that I think is cool enough to share with the world.”

An Auto-Filling CSS Grid with Max Columns of a Minimum Size

 

Drupal announced:

Return type hints added to some class methods for Symfony 5.4/Symfony 6 compatibility

 

Timeless

Inspector logo

Sponsored Article

We published our second sponsored article on Symfony Station exploring how code-driven monitoring helps you deliver successful Symfony products. Like all our articles it is now available via audio.

How code-driven monitoring helps you deliver successful Symfony products

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.

 

PHP logo

PHP

 

Vishwa Chikate shares some additional standards his team uses.

PHP — additional coding standards

 

In case you didn’t know PHP8.1 is fast. There are major boosts for Symfony and WordPress in particular. Kinsta has this:

The Definitive PHP 7.2, 7.3, 7.4, 8.0, and 8.1 Benchmarks (2022)

 

Backend Developer writes “The Singleton pattern is used to ensure that there is only one instance of an object and that the same (and single instance) is called everywhere in your codebase whenever you need that object.”

Singleton Pattern — PHP Implementation

They also have:

DRY vs WET Principles — Php Implementation

 

Yactouat notes “While web API's like SendGrid are great tools for emailing at scale from within a web application, they are not free. Also, they often provide overkill features when you just want to send plain confirmation emails, for instance.

What we are going to look at in this post is how to send an email using a Gmail account programmatically with a PHP app' running in Docker, for free. This may pave you a way to build a mailer service that you could later run in Kubernetes or Google Cloud Run or any other platform of your choice.”

Send Gmail emails from a Dockerized PHP app the easy and free way

 

Codecourse has a free PestPHP course.

Up and Running with Pest

 

Vonage Dev says, “In early Symfony and Zend Framework applications the PHP-FIG didn’t exist, and coding standards were at the discretion of whoever was writing it. Over the years that we’ve seen widespread adoption of PSR standards, rock-solid static analysis tooling has been somewhat patchy. That is, until now, with the release of version 1.0 of PHPStan. Let’s celebrate this occasion by going through some of its features!”

Scrub up! Cleaning up your PHP Application with PHPStan

 

Jordi Bassaganas writes “object-oriented programming aka OOP is something you definitely want to add to your skillset. It is all about writing apps in terms of real-world concepts like coffee, pizza or cat — more of a way of doing things and approaching problems rather than using a particular library or implementing a software design pattern.”

PHP Examples of Polymorphism

 

Learning by doing (why we created Symfony Station) is the best way to learn. Sharing what you learn is even better. Joshua Otwell shares a PHP function he recently learned and is excited about.

PHP array_diff() function - A handy use case learned

Code logo

OTHER

 

Wired notes “Employers have found it difficult to replace the wave of workers who quit in The Great Resignation, which began last year and hasn’t let up since. In the US, the number of workers quitting has now exceeded pre-pandemic highs for eight straight months.”

After the Great Resignation, Tech Firms Are Getting Desperate

 

Dave Vellante writes “the rise of Kubernetes came about through a combination of forces that were, in hindsight, quite a long shot.”

The improbable rise of Kubernetes to become the operating system of the cloud

 

Venture Beat notes “One of the core maintainers instrumental in issuing a Log4j fix has a full-time job elsewhere as a software architect, and only works on “Log4j and other open-source projects” in his spare time. While this was used by some to assert that community-driven software isn’t secure enough, others offered that it simply highlighted the need to implement a more rigorous security regimen with any open-source software that plays such a fundamental role in critical infrastructure.”

The challenges of community- vs vendor-led open source-software

 

Sascha Segan writes “Part of Web3's problem is that it's being promoted by many of the most obnoxious narcissists in the world. But the 'Web3' dream is also familiar techno-utopianism for anyone who lived through Web 1.0.”

Web3 Will Fail Because You Can't Solve Politics with Technology

 

Matthew Reinbold writes that several years ago “Google instituted a lightweight, scalable, and distributed design review process. Peer review has long been a staple of healthy, modern software development practices. Google’s application of the approach to API design ultimately reduced usability defects while being more efficient than API usability tests.

Companies of all sizes, not just the Googles of the world, can benefit from an API design review process. But what is involved?”

5 Tips for a Game-Changing API Design Review

 

GitHub announced “A picture tells a thousand words. Now you can quickly create and edit diagrams in markdown using words with MermaidJS support in your Markdown files.”

Include diagrams in your Markdown files with Mermaid

PHP Architect has an article on this type of tech in their February issue.

 

Jolicode has this for us:

Docker Cheat Sheet for Common Database Engine

 

Have you published or seen something related to Symfony or PHP that we missed? If so, please get in touch.

 

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.

 

Do you own or work for an organization that would be interested in our promotion opportunities? If so, please contact us. We’re in our infancy so it’s extra economical. ;)

 

Happy Coding Symfonistas!

Author

Reuben Walker photo

 

Reuben Walker

Founder
Symfony Station

 

 

 


 

Symfony Station Communiqué - 28 January 2022

A white paragraph.

 


 

Symfony Station Logo

symfony logo

 

 


 

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é 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 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)

 

Ever wondered which Symfony components make Laravel work?

Here they are.

 

Featured Item graphic

 

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

 

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 details the mechanism of operation and has code examples. And it’s quite fast.

You can also follow a step-by-step tutorial and check out the Symfony integration. 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

 

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

 

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

 

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

 

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

 

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

 

Stavros Kounis shows us how to:

Apply Drupal 9 patches with Composer

 

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

 

Last Week

 

As mentioned above:

More Than a CMS: Drupal in the Age of Digital Experience Platforms

 

Timeless

Inspector logo

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.

 

PHP logo

PHP

 

This Week

 

Mauro Chojrin reviews modern tools for PHP developers.

Modern Tools for 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

 

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

Thoughts On PHP Fibers

 

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

2021 – A Year 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

 

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

PHP crash course : Conditionals, Loops and Functions

 

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

 

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

 

This one is self-explanatory.

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

 

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

 

And Anton Röhm shows us how to:

Deploy your PHP Codebase with Ansible and GitHub Actions

 

This Month

 

Doctrine ORM released an update.

Doctrine 2.11

Code logo

OTHER

 

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

Today is 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

 

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

 

If you would like to review API endpoints, Kinsta has this for you.

What Is an API Endpoint?

 

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

 

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 or 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

 

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

 

Git 2.35 was released.

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

 

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

 

Have you published or seen something related to Symfony or PHP that we missed? If so, please get in touch.

 

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.

 

Do you own or work for an organization that would be interested in our promotion opportunities? If so, please contact us. We’re in our infancy so it’s extra economical. ;)

 

Happy Coding Symfonistas!

 

Visit our Communiqué Library

You can find a vast array of curated evergreen content.

 

Author

Reuben Walker photo

 

Reuben Walker

Founder
Symfony Station

 

 

 


 

Symfony Station Communiqué - 21 January 2022

 


 

 


 

Symfony Station Logo

symfony logo

 

 


 

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é and newest article 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 fixed some issues related to PHP enums and improved the performance when using many environment variables in your application. Meanwhile, the SymfonyWorld Online 2022 Summer Edition conference finished its early bird period, but the Call for Papers is still open, so you can send your proposals until February 14, 2022."

A Week of Symfony #785 (10-16 January 2022)

 

Symfony announced "we're introducing the new certification exam for Symfony 6. This exam is similar to the existing Symfony certification exams (same exam topics, same number of questions, etc.) but we've revamped the certification contents with many new questions in addition to removing outdated or complicated questions. We've also updated the content so the entire certification exam for Symfony 6 is much easier than before. No trick questions, the entire exam has been redesigned making sure all questions will be easy to understand and easy to answer to."

Introducing the Symfony 6 Certification

 

They introduced the brand new Webapp pack. "What are the benefits? The main benefit is that a pack is a regular Composer package that you can require in any existing project (even late in the game). That allows to compose your application by using more than one pack. As for code, package composition is almost always better than inheritance. The website skeleton is all about inheritance: philosophically, it extends the base skeleton. You need to use one or the other. On the contrary, the Webapp pack can be included in any set of dependencies, independently of the skeleton that was used to create the project. Think of a pack as being the equivalent of a PHP trait."

A better way to quickly start Symfony projects

 

Featured Item graphic

 

Featured Item

 

Symfony Flex makes it easy to install a package and get everything you need to start working immediately: new config files, changes to .env, Docker configuration and more. The idea is so powerful that symfony/skeleton - the repository used for new Symfony apps - starts empty other than composer.json! Familiar files like src/Kernel.php, bin/console and config/services.yaml are added to your project via recipes.

Starting in symfony/flex 1.18.0 or 2.1.0, a new composer command is now available when you need to update Symfony to a new version: recipes:update. This command is smart: it generates a "diff" between the originally-installed version of recipe and the latest version, then leverages git to apply that patch. In other words, upgrading recipes is as simple and robust as merging two branches together with git! Most of the time the changes apply cleanly. But if they don't, you get a familiar git-style conflict that you can resolve.

Fast, Smart Flex Recipe Upgrades with recipes:update

 

This Week

 

Akashic Seer is back with another entertaining article.

Symfony how to get query string values sent by AJAX calls

 

Oliver de Cramer writes "For over 7 years I have mostly worked on e-commerce projects. Most of them were Magento 1 & 2 projects with a few adventures with other solutions (Drupal commerce 😱).

So when beginning of this summer I was given the opportunity to work on a Sylius project that didn’t sell products, but subscriptions I jumped on the occasion. "

A Little Sylius Adventure: From the perspective of a Magento developer

 

Speaking of Sylius, Les-Tilleuls.coop has a case study carried out with one of its customers, Rapid-flyer.com.

They say "in this article, we go to meet Nicolas Mathieu, CEO of this company founded almost 20 years ago, who looks back on the different technical choices that led to our collaboration and the current development of this e-commerce project. "

Case Study: Rapid-flyer.com x Les-Tilleuls.coop (en francais)

 

PrestaConcept presents "a simple and elegant solution, using the injection of tagged services, to give you the possibility to disable certain listeners when executing certain commands."

How to Disable Certain Listeners during Certain Commands in Symfony (aussi en Francais)

 

EasyAdmin 4.0.2 has been released, and it includes one of the most requested features by the community: menu badges. These badges are commonly used to display some numeric value next to menu items (e.g. number of notifications, number of new clients, number of invoices pending to be paid, etc.)

New in EasyAdmin 4: Menu Badges

 

Kévin Dunglas says "version 3 of the popular Doctrine DBAL library has been released at the end of 2020, almost 10 years after the initial release of version 2. In September 2021, Doctrine ORM 2.10 added support for DBAL 3, while still supporting DBAL 2 at the same time.

The upgrade process from DBAL 2 to DBAL 3 is usually straightforward. Most breaking changes impact low-level classes, that aren’t commonly directly manipulated when using the ORM. However, things become more complex if you rely on JSON columns, and you may know that I’m a big user of them!"

JSON Columns and Doctrine DBAL 3 Upgrade

 

Luismi Sánchez shares his Tips and notes from a SymfonyCast.

Symfony fundamentals notes

 

Damian Brdej writes "Laradock is a full PHP development environment for Docker. It contains a variety of popular services such as PostgreSQL, MySQL, Redis, MongoDB, PHPmyAdmin, and so on."

Laradock - a ready to use PHP docker environment

 

Oleg Charnyshevich tells us "one part of my job is a code review, and I started to notice that some of my colleagues can’t get an idea of dependency injection and the service container. As a result, they tend to over-engineering things." He continues with this.

4 ways to inject dependencies in Symfony that you probably don’t know about

 

Youri Galescot says "some time ago I discovered the TailwindCSS framework created by Adam Wathan and I was seduced by its simplicity and speed of use. My productivity in creating user interfaces and HTML/CSS integration has been really boosted."

How to integrate TailwindCSS v3 into a Symfony project with Webpack Encore (en francais)

 

PHPStan is being added to core for the Drupal 10 update later this year.

The static analyzer tool PHPStan has been added to Drupal Core

 

For those of you using Drupal for your site, this looks like a useful module.

Personalizing the Website Experience for Visitors Using the Drupal 9 Smart Content Module

 

Finally on the Drupal front, Daniel Sipos writes that in December "the 9.3.0 minor version of Drupal was released, containing, like usual, some progressive enhancements to the overall product. Among these, I would like to highlight today two such changes pertaining the permissions system. So let’s get to it."

Permissions updates in Drupal 9.3

 

Matija Cerovec writes "The strategy design pattern is a behavioral software design pattern that lets you define a family of algorithms, encapsulates them, and selects one from the pool for use during runtime. The algorithms are mutually interchangeable. By using design patterns, you can make your code more flexible, reusable, and maintainable. In this blog, I will show how to use strategy design pattern on Symfony by real-world case."

Implementing Strategy Pattern with Symfony

 

Jérôme Tamarelle tells us "Integrating Vault and Symfony does not require any PHP code. Using vault-agent secrets variables can be dumped into .env file. Dynamic secrets can even be used as feature flags."

Store Secrets in Vault with Symfony

 

Freek Van der Herten makes the claim "Ignition is the most beautiful error page for PHP apps. Yesterday, we launched a new major version of Ignition - you can check out all the details in this blog post.

Ignition used to be Laravel specific, but we've now created a framework-agnostic version as well. Let's try using Ignition in a simple Symfony app."

A better error page for Symfony applications

 

Leo Hajder asks "How often do you have to consume an external API and integrate it into a Symfony application? Let’s see how to do it fast and/or well, and hopefully learn something along the way. For this example, we’re going to take a look at how to get a response from an API endpoint and render the data in a twig template."

Consuming External APIs: basic tips & tricks

 

Timeless

Inspector logo

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.

 

 

PHP logo

PHP

 

This Week

 

In this well-written article, Ibrahim Alausa shows us how to future-proof our controllers.

A comprehensive guide on how to design future-proof controllers: Part 1

 

Hojjat has another introductory post for us and states "in this guide, we’ll use Docker to quickly deploy Redis using the official image on Docker Hub."

Deploy Redis as a Docker container [part 1]

 

Rob Hedgpeth says "The PHP programming language has long been considered a fairly light and simple solution for developers to use to create robust and creative web applications. In fact, that’s as true now as it has ever been as past few versions of PHP have made the language more appealing than ever.

Like many other languages, PHP has the ability to take advantage of the power of MariaDB, and it’s actually a pretty simple and straightforward process."

Developer Quick Start: PHP and MariaDB

 

Last week, we shared Eric the Coder's article on Modern PHP. He adds to the series with a few new posts.

PHP crash course : Strings and Numbers

 

Yactouat finishes his series on PHP iterators and generators.

Introducing PHP custom collections with the `IteratorAggregate` interface

 

Backend Developer reviews the read-only property for us.

Php 8.1 New Features — Read-only Properties

 

Dolcer Engineering asks "have you ever worked on micro-services architecture with a lots of services where every one of them is created by different team and with different code standards? Situations like that are never ideal, but sometimes there’s no other choice, and you need to improve what you can. This was the exact problem we encountered."

Improve quality of PHP applications with static analysis and SonarQube

 

The following was popular when we shared it on Twitter. Dariusz Gafka shows us:

How To Integrate Micro-services

He continues with:

Starting with Micro-services in PHP

 

Brent at Stitcher.io writes "I want to share some actionable advice on how to deal with updating external dependencies. Because, let's face it, you want to update your project to PHP 8.1, but some of your dependencies don't support it. So, end of story, right?

Here's what I do in such cases."

Dealing with Dependencies

 

A new issue of PHP [Architect] is out and features Domain Driven Design.

The January edition of PHP [Architect] is out

 

Kristian Lentino shares his exploration of Rabbit MQ.

Trying out Rabbit MQ

 

Frank de Jonge says "using events in a system is great, but how do you know for sure if you've reliably dispatched your events? The transportation of events needs to be done reliably while maintaining overall system consistency, be it eventual or immediately. In a typical setup, a database is used to store information and queues are used to send messages between processes and systems. Often, the events are dispatched directly to the queue in the same action that stores information in the data. This may not seem to be obviously wrong, but there is a potential problem with this approach."

Reliable event dispatching using a transactional outbox 

 

Ajimoti Ibk show us how to:

Calculate PHP cache time with ease

 

Last Week

 

Git hooks are scripts that will run when a certain event occurs in git like git push, git pull, git commit, etc. We can find git hooks at .git/hooks in a particular git repository.

Precommit is a git hook, that triggers custom scripts or commands during the execution of a git commit.

In this article, we will format PHP code using prettier at a time of committing code to git.

Automation — PHP Code Formatting before (pre) git commit

 

Last Month

 

Ever found yourself wanting to make a small tweak to a PHP file in a Composer dependency? Here's how to do it without forking the entire package.

Overriding vendor classes in a Composer Dependency

 

Timeless

 

Joshua Otwell writes "If you’re a PHP/MySQL Developer, you have date function options for both the database and your programming language of choice. In this post, I cover 5 PHP date functions and their (somewhat) MySQL equivalents with examples of each."

5 PHP Date Functions and Their MySQL Equivalents

Code logo

Other

 

About.com Software provides a showcase on how to develop locally with Docker, using a remote database over a secure SSH tunnel. No Docker hacking and no firewall tinkering are required.

Easy Docker Tunnel for the win

 

Last week, I shared several articles about the challenges of open-source maintenance. This week, I am continuing the theme." As I have said before, if you use an open-source products please contribute to the maintainer(s).

 

GitHub participated in the White House meeting on open-source cybersecurity. In the post they "outline three themes that the GitHub Policy Team thinks should drive this conversation with policymakers—to help open-source prosperity and sustainability. These themes are only a starting point: if you have thoughts, please get in touch."

Open-source creates value, but how do you measure it?

 

Jeff Geerling shares his strategy for avoiding burnout as a maintainer for multiple projects.

The burden of an Open-Source maintainer

 

The Next Web notes "Just because you're OSS doesn't mean you have to be strapped for cash all the time."

6 ways open-source devs can make money

 

ZDNet makes this point "Instead of running around like headless chooks because a widely used piece of open source software is maintained by volunteers and has a massive hole in it, imagine paying someone to look after such software properly."

For security alone, we could try paying open-source projects properly

 

Shawn Hooper says "The problem is when projects get popular. You now end up with software that is used in thousands (millions?) of pieces of software that is at risk of a) its developer either abandoning the project due to new interests, changed life priorities or 2) the employer who was paying for the development work ends the project. "

On Open-Source and Importance of The PHP Foundation

 

Finally, TechCrunch notes "Most people don’t realize it, but many of the devices and apps you use every day are built on top of open-source software, maintained by one or two developers that aren’t paid for their time, who patch bugs and improve their code to give back to the community or as a passion project."

Open-source developers, who work for free, are discovering they have power

 

Tara Prasad Routray wants to help us "learn about the incredible new features that ship with the Tailwind CSS v3.0 release."

Top 10 Features Introduced In Tailwind CSS v3.0

 

Christoph Nißle's article is a well-done overview of the scattered nature of IT landscapes and the challenges they face.

Why you should decide to do API Management

 

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 Walker photo

 

Reuben Walker

Founder
Symfony Station

 

 

 


 

Subscribe to Open-Source

 

 

Follow Symfony Station on Mastodon Mastodon Icon Twitter Twitter Icon Flipboard Flipboard Icon or Our Newsletter Newsletter Icon