1: <?php
2: /**
3: * Overload abstraction interface. Merges differences between PHP4 and 5.
4: *
5: * PHP versions 4 and 5
6: *
7: * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
8: * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
9: *
10: * Licensed under The MIT License
11: * Redistributions of files must retain the above copyright notice.
12: *
13: * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
14: * @link http://cakephp.org CakePHP(tm) Project
15: * @package cake
16: * @subpackage cake.cake.libs
17: * @since CakePHP(tm) v 1.2
18: * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
19: */
20:
21: /**
22: * Overloadable class selector
23: *
24: * Load the interface class based on the version of PHP.
25: *
26: * @package cake
27: * @subpackage cake.cake.libs
28: */
29: class Overloadable extends Object {
30:
31: /**
32: * Overload implementation. No need for implementation in PHP5.
33: *
34: * @access public
35: */
36: function overload() { }
37:
38: /**
39: * Magic method handler.
40: *
41: * @param string $method Method name
42: * @param array $params Parameters to send to method
43: * @return mixed Return value from method
44: * @access private
45: */
46: function __call($method, $params) {
47: if (!method_exists($this, 'call__')) {
48: trigger_error(sprintf(__('Magic method handler call__ not defined in %s', true), get_class($this)), E_USER_ERROR);
49: }
50: return $this->call__($method, $params);
51: }
52: }
53:
54: /**
55: * Overloadable2 class selector
56: *
57: * Load the interface class based on the version of PHP.
58: *
59: * @package cake
60: */
61: class Overloadable2 extends Object {
62:
63: /**
64: * Overload implementation. No need for implementation in PHP5.
65: *
66: * @access public
67: */
68: function overload() { }
69:
70: /**
71: * Magic method handler.
72: *
73: * @param string $method Method name
74: * @param array $params Parameters to send to method
75: * @return mixed Return value from method
76: * @access private
77: */
78: function __call($method, $params) {
79: if (!method_exists($this, 'call__')) {
80: trigger_error(sprintf(__('Magic method handler call__ not defined in %s', true), get_class($this)), E_USER_ERROR);
81: }
82: return $this->call__($method, $params);
83: }
84:
85: /**
86: * Getter.
87: *
88: * @param mixed $name What to get
89: * @param mixed $value Where to store returned value
90: * @return boolean Success
91: * @access private
92: */
93: function __get($name) {
94: return $this->get__($name);
95: }
96:
97: /**
98: * Setter.
99: *
100: * @param mixed $name What to set
101: * @param mixed $value Value to set
102: * @return boolean Success
103: * @access private
104: */
105: function __set($name, $value) {
106: return $this->set__($name, $value);
107: }
108: }
109: