Differences Between: [Versions 311 and 400] [Versions 311 and 401] [Versions 311 and 402] [Versions 311 and 403]
1 <?php 2 3 declare(strict_types=1); 4 5 namespace Phpml; 6 7 use Phpml\Exception\FileException; 8 use Phpml\Exception\SerializeException; 9 10 class ModelManager 11 { 12 public function saveToFile(Estimator $estimator, string $filepath): void 13 { 14 if (!is_writable(dirname($filepath))) { 15 throw new FileException(sprintf('File "%s" can\'t be saved.', basename($filepath))); 16 } 17 18 $serialized = serialize($estimator); 19 if (!isset($serialized[0])) { 20 throw new SerializeException(sprintf('Class "%s" can not be serialized.', gettype($estimator))); 21 } 22 23 $result = file_put_contents($filepath, $serialized, LOCK_EX); 24 if ($result === false) { 25 throw new FileException(sprintf('File "%s" can\'t be saved.', basename($filepath))); 26 } 27 } 28 29 public function restoreFromFile(string $filepath): Estimator 30 { 31 if (!file_exists($filepath) || !is_readable($filepath)) { 32 throw new FileException(sprintf('File "%s" can\'t be open.', basename($filepath))); 33 } 34 35 $object = unserialize((string) file_get_contents($filepath), [Estimator::class]); 36 if ($object === false) { 37 throw new SerializeException(sprintf('"%s" can not be unserialized.', basename($filepath))); 38 } 39 40 return $object; 41 } 42 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body