1 | <?php |
||
16 | trait Storable |
||
17 | { |
||
18 | /** |
||
19 | * @var \JsonSerializable |
||
20 | */ |
||
21 | protected $object; |
||
22 | |||
23 | /** |
||
24 | * @var string |
||
25 | */ |
||
26 | protected $filename; |
||
27 | |||
28 | /** |
||
29 | * @var int|null |
||
30 | */ |
||
31 | protected $file_modification_time = null; |
||
32 | |||
33 | /** |
||
34 | * @param string $filename |
||
35 | */ |
||
36 | public function setFilename($filename) |
||
43 | |||
44 | /** |
||
45 | * @return string |
||
46 | */ |
||
47 | public function getFilename() |
||
51 | |||
52 | /** |
||
53 | * @return \JsonSerializable |
||
54 | */ |
||
55 | protected function getObject() |
||
59 | |||
60 | /** |
||
61 | * @param \JsonSerializable $object |
||
62 | */ |
||
63 | protected function setObject(\JsonSerializable $object) |
||
67 | |||
68 | protected function loadObjectIfNeeded() |
||
81 | |||
82 | /** |
||
83 | * @return array|null |
||
84 | */ |
||
85 | protected function getFileContent() |
||
99 | |||
100 | /** |
||
101 | * @return \JsonSerializable |
||
102 | */ |
||
103 | abstract protected function createNewObject(); |
||
104 | |||
105 | /** |
||
106 | * @param array $file_content |
||
107 | * |
||
108 | * @return \JsonSerializable |
||
109 | */ |
||
110 | abstract protected function createObjectFromFileContent(array $file_content); |
||
111 | |||
112 | /** |
||
113 | * @return int|null |
||
114 | */ |
||
115 | protected function getFileModificationTime() |
||
121 | |||
122 | /** |
||
123 | * @return bool |
||
124 | */ |
||
125 | protected function hasFileBeenUpdated() |
||
133 | |||
134 | /** |
||
135 | * |
||
136 | */ |
||
137 | protected function createAndSaveObject() |
||
143 | |||
144 | protected function saveObject(\JsonSerializable $object) |
||
149 | |||
150 | public function delete() |
||
156 | } |
||
157 |