1: <?php declare(strict_types=1);
2:
3: namespace Salient\Core\Concern;
4:
5: use Salient\Contract\Core\Entity\Readable;
6: use Salient\Core\Internal\ReadPropertyTrait;
7:
8: /**
9: * Implements Readable
10: *
11: * - If `_get<Property>()` is defined, it is called instead of returning the
12: * value of `<Property>`.
13: * - If `_isset<Property>()` is defined, it is called instead of returning
14: * `isset(<Property>)`.
15: * - The existence of `_get<Property>()` makes `<Property>` readable, regardless
16: * of {@see Readable::getReadableProperties()}'s return value.
17: *
18: * @api
19: *
20: * @see Readable
21: */
22: trait HasReadableProperties
23: {
24: use ReadPropertyTrait;
25:
26: public static function getReadableProperties(): array
27: {
28: return [];
29: }
30: }
31: