1: <?php
 2: 
 3:  4:  5:  6: 
 7: 
 8: namespace Latte;
 9: 
10: 
11: 12: 13: 14: 15: 
16: abstract class Object
17: {
18: 
19:     20: 21: 22: 
23:     public function __call($name, $args)
24:     {
25:         $class = method_exists($this, $name) ? 'parent' : get_class($this);
26:         throw new \LogicException(sprintf('Call to undefined method %s::%s().', $class, $name));
27:     }
28: 
29: 
30:     31: 32: 33: 
34:     public function &__get($name)
35:     {
36:         throw new \LogicException(sprintf('Cannot read an undeclared property %s::$%s.', get_class($this), $name));
37:     }
38: 
39: 
40:     41: 42: 43: 
44:     public function __set($name, $value)
45:     {
46:         throw new \LogicException(sprintf('Cannot write to an undeclared property %s::$%s.', get_class($this), $name));
47:     }
48: 
49: 
50:     51: 52: 
53:     public function __isset($name)
54:     {
55:         return FALSE;
56:     }
57: 
58: 
59:     60: 61: 62: 
63:     public function __unset($name)
64:     {
65:         throw new \LogicException(sprintf('Cannot unset the property %s::$%s.', get_class($this), $name));
66:     }
67: 
68: }
69: