In PHP, the "Typed property must not be accessed before initialization" error is encountered when a property is defined with a type hint, but it is accessed before it has been explicitly assigned a value.
Yes, Doctrine 2 provides a built-in way to get the changed fields in an entity.