diff options
Diffstat (limited to 'Digitigrade/Model/FetchableModel.php')
| -rw-r--r-- | Digitigrade/Model/FetchableModel.php | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Digitigrade/Model/FetchableModel.php b/Digitigrade/Model/FetchableModel.php index 30b68e7..0b67599 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; } - private static function fetchFromRemote(string $uri, bool $autoSave): ?static { + protected static function fetchFromRemote(string $uri, bool $autoSave): ?static { // fetch the object $data = @file_get_contents($uri, context: stream_context_create(['http' => [ 'header' => 'Accept: application/json' @@ -58,6 +58,8 @@ abstract class FetchableModel extends Model implements RemoteFetchable { } } + $obj->beforeSave($uri); + if ($autoSave) { $obj->save(); } @@ -65,6 +67,9 @@ abstract class FetchableModel extends Model implements RemoteFetchable { return $obj; } + protected function beforeSave(string $uri) { + } + public static function findByUri(string $uri, bool $autoSave = true, bool $forceRefetch = false): ?static { if (!$forceRefetch) { $obj = static::findWhere('uri = ?', [$uri]); |
