1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Core\Entity;
4:
5: /**
6: * @api
7: */
8: interface Readable
9: {
10: /**
11: * Get readable properties
12: *
13: * If `["*"]` is returned, all `protected` properties are readable.
14: *
15: * @return string[]
16: */
17: public static function getReadableProperties(): array;
18:
19: /**
20: * Get the value of a property, or null if it is not set
21: *
22: * @return mixed
23: */
24: public function __get(string $name);
25:
26: /**
27: * Check if a property is set
28: */
29: public function __isset(string $name): bool;
30: }
31: