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: |