diff options
Diffstat (limited to 'Digitigrade/Model/FetchableModel.php')
| -rw-r--r-- | Digitigrade/Model/FetchableModel.php | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/Digitigrade/Model/FetchableModel.php b/Digitigrade/Model/FetchableModel.php index 964ea15..07d7e32 100644 --- a/Digitigrade/Model/FetchableModel.php +++ b/Digitigrade/Model/FetchableModel.php @@ -13,7 +13,7 @@ abstract class FetchableModel extends Model implements RemoteFetchable { self::$mapper->bStrictObjectTypeChecking = false; } - protected static function createFromJson(\stdClass $data, bool $autoSave): static { + protected static function createFromJson(\stdClass $data): static { // default everything nullable to null $obj = new static(); $reflProps = (new \ReflectionClass(static::class))->getProperties(); @@ -49,13 +49,6 @@ abstract class FetchableModel extends Model implements RemoteFetchable { } } - $obj->finaliseAfterFetch($uri); - - if ($autoSave) { - $obj->save(); - $obj->finaliseAfterSave(); - } - return $obj; } @@ -68,7 +61,16 @@ abstract class FetchableModel extends Model implements RemoteFetchable { $data = json_decode($data); if ($data === null) return null; - return static::createFromJson($data, $autoSave); + + $obj = static::createFromJson($data); + + $obj->finaliseAfterFetch($uri); + if ($autoSave) { + $obj->save(); + $obj->finaliseAfterSave(); + } + + return $obj; } protected function finaliseAfterFetch(string $uri) { |
