3   Entities

3.1   About the entities

The entity is a pure PHP object without any heritance.

3.2   Entities and UnitOfWork

However UnitofWork needs to know which data have been changed in the object to persist. Then UnitofWork can update the columns needed.

Your entity need to implement the pattern Observer to notify the UnitofWork about changes.

Ting provides the trait CCMBenchmark\Ting\Entity\NotifyProperty to help you.

use CCMBenchmark\Ting\Entity\NotifyProperty;

class User implements NotifyPropertyInterface
    use NotifyProperty;

     * @var string
    private $name = '';

     * @param string $name
    public function setIdContentIndexRoot($name)
        $name = (string) $name;
        $this->propertyChanged('name', $this->name, $name);
        $this->name = $name;

    // ...

Each time a property is changed we notify the UnitofWork through the method propertyChanged.