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