Hello,

I have lots of models with keepSnapshots(true) and beforeSave hooks, and in every model I have to double check every time with:

($this->hasSnapshotData() && $this->hasChanged('column')) || (! $this->hasSnapshotData() && ! empty($this->column))

Wouldn't be fair to assume that hasChanged is true on create if value is not empty? Right now, hasChanged without hasSnapshotData check is throwing an error.

In code model.zep, i've noticed that this check is already covered

https://github.com/phalcon/cphalcon/blob/b28b0a2c8a39fdb505d0529c8994aec60462ae57/phalcon/Mvc/Model.zep#L1649

but is not reached because of snapshot init with NULL

https://github.com/phalcon/cphalcon/blob/b28b0a2c8a39fdb505d0529c8994aec60462ae57/phalcon/Mvc/Model.zep#L124

instead of [], and

https://github.com/phalcon/cphalcon/blob/b28b0a2c8a39fdb505d0529c8994aec60462ae57/phalcon/Mvc/Model.zep#L1614