PHP-Traits in Symfony: Add timestamps and more to tables magically

Say you want to add a logging preprocessor to some of your classes. Either all of these classes have to inherit some kind of logger-class, or you have to copy the logging-call multiple times. Not anymore! PHP 5.4.0 introduced Traits, a wonderful way to inject code into your classes without using inheritance.

A Trait is similar to a class, but only intended to group functionality in a fine-grained and consistent way.

Some guys in the Symfony-community prepares some great traits:

  • Timestampable
  • Loggable
  • Translatable
  • Sortable
  • Tree

Go check them out:

https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/timestampable.md#traits