1: <?php
2:
3: namespace Teto\Object;
4:
5: use function sprintf;
6:
7: /**
8: * Restrict write to not accessable property.
9: *
10: * @see \Teto\Object\PrivateGetterTest
11: *
12: * @author USAMI Kenta <tadsan@zonu.me>
13: * @copyright 2016 Baguette HQ
14: * @license http://www.apache.org/licenses/LICENSE-2.0
15: */
16: trait ReadOnlyTrait
17: {
18: public function __set($name, $_value)
19: {
20: $message = sprintf('%s->%s is not writable property.', static::class, $name);
21: throw new \OutOfRangeException($message);
22: }
23: }
24: