Tobias Nyholm

Tobias Nyholm is a developer. He is the author of this blog.

Symfony setter injection

Symfony setter injection

The Symfony documentation explains four ways to inject dependencies to your service. In short, you can use the constructor, inject directly to a public property or you can use a two flavours of inject...

Symfony Lock and Messenger component

Symfony Lock and Messenger component

The lock component have saved me so many times. It helps me with race conditions, it makes my code simpler and my application more reliable. I'm using it to fix all kinds of problems and I've noticed ...

One year of AsyncAws

One year of AsyncAws

It has been one year since Jérémy Derussé and I started to work on a new API client for AWS. At the time we could never have imagined how popular it would be. In this first year we had over 1.5 millio...

PHP 7.4 preloading benchmark

PHP 7.4 preloading benchmark

Preloading arrived to PHP 7.4.0 in November 2019. I was super excited about this and I started to try it out. But I quickly noticed that it was a little buggy when you started with a "real world&...

Symfony HTTP Client and caching

Symfony HTTP Client and caching

Symfony has a HTTP client which differ from other clients like Guzzle, Buzz or clients from the HTTPlug organization. Symfony's HTTP client is asynchronous by default. Using asynchronous anything is s...

Symfony Messenger on AWS Lambda

Symfony Messenger on AWS Lambda

For the past 4 years we have developed web applications with a message bus. The Symfony Messenger component was released around a year ago and I've loved it since. In the past few weeks we've been dep...

Using NewRelic with Bref on AWS Lambda

Using NewRelic with Bref on AWS Lambda

Running serverless is great. When migrating our applications to use Bref we realized that we need a non-standard php-extension. With "non-standard" I mean that the extension is not included ...

Blocking vs non-blocking fonts

Blocking vs non-blocking fonts

Just the other day I found out about the font-display: swap; css directive. It basically allows you to configure the browser to load the webpage first and then add the correct fonts when they are load...

Testing the Symfony 4.1 router

Testing the Symfony 4.1 router

How much faster is the new Symfony router in a real world application? We ran some tests to find out. An improved router A few days ago we received the fantastic news that the Symfony router had been ...

Generate URLs in Symfony commands

Generate URLs in Symfony commands

It has been great many years since Symfony 2.0 was released. 2.0 did not have as many great features as Symfony 4.0, but it was flexible and you could still accomplish what ever you want. I've just fo...

Always use caret instead of tilde

Always use caret instead of tilde

I've been noticing people having trouble understanding the differences between the caret ("^") and the tilde ("~") operator in the composer.json file. Composer's documentation is g...