1: <?php declare(strict_types=1);
2:
3: namespace Salient\Contract\Core\Entity;
4:
5: /**
6: * @api
7: */
8: interface Writable
9: {
10: /**
11: * Get writable properties
12: *
13: * If `["*"]` is returned, all `protected` properties are writable.
14: *
15: * @return string[]
16: */
17: public static function getWritableProperties(): array;
18:
19: /**
20: * Set the value of a property
21: *
22: * @param mixed $value
23: */
24: public function __set(string $name, $value): void;
25:
26: /**
27: * Unset a property
28: */
29: public function __unset(string $name): void;
30: }
31: