https://unsplash.com/photos/4wxWBy8Jo1I

Let’s say you have a Symfony entity Person with a Doctrine ORM Embeddable EmailAddress value object:

This works without a problem at first sight. You create a migration, the email_address field is added as nullable to your person table and everything looks fine.

The problem appears when you save the entity without an email address (set the property to null) and then use this entity somewhere again. …


TDD and automated software tests is always a topic for developers.

How to definitely start testing your own TYPO3 extensions is a bit challenging to figure out. There is an official documentation, some old articles, some slides, some videos here and here (old) and a best-practice example extension but no complete (if only basic) detailed step-by-step guide. This article is intended to help you get started. 👍

Official TYPO3 Documentation

In this TYPO3 documentation article the why and most of the how is explained. Start by reading this article and then come back here to link the loose ends.

Getting started

I assume you work…


Did you know that it’s possible to push to multiple git repositories at once without any additional (server) software?

This is especially useful if your client has a repository and you want to keep a copy on your own server (e.g. if you use a bug tracker like Redmine or Jira that’s using the commit messages to track changes).

Use this command to add another pushurl for your remote (in this example origin).

git remote set-url --add --push origin ssh://git@myserver.com/myrepository.git
git remote set-url --add --push origin ssh://git@myserver2.com/myrepository2.git

This will result in the following changes in your .git/config file.

[remote "origin"]…

Wolfgang Klinger

Programmer, Photographer, Gardener

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store