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