/cake/libs/overloadable_php4.php
PHP | 164 lines | 68 code | 3 blank | 93 comment | 10 complexity | 3106fd5370dfefdcba547b6b1592f9a4 MD5 | raw file
Possible License(s): LGPL-2.1
- <?php
- /* SVN FILE: $Id: overloadable_php4.php 7945 2008-12-19 02:16:01Z gwoo $ */
- /**
- * Overload abstraction interface. Merges differences between PHP4 and 5.
- *
- * PHP versions 4 and 5
- *
- * CakePHP(tm) : Rapid Development Framework (http://www.cakephp.org)
- * Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
- *
- * Licensed under The MIT License
- * Redistributions of files must retain the above copyright notice.
- *
- * @filesource
- * @copyright Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
- * @link http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project
- * @package cake
- * @subpackage cake.cake.libs
- * @since CakePHP(tm) v 1.2
- * @version $Revision: 7945 $
- * @modifiedby $LastChangedBy: gwoo $
- * @lastmodified $Date: 2008-12-18 18:16:01 -0800 (Thu, 18 Dec 2008) $
- * @license http://www.opensource.org/licenses/mit-license.php The MIT License
- */
- /**
- * Overloadable class selector
- *
- * Load the interface class based on the version of PHP.
- *
- * @package cake
- * @subpackage cake.cake.libs
- */
- class Overloadable extends Object {
- /**
- * Constructor.
- *
- * @access private
- */
- function __construct() {
- $this->overload();
- parent::__construct();
- }
- /**
- * Overload implementation.
- *
- * @access public
- */
- function overload() {
- if (function_exists('overload')) {
- if (func_num_args() > 0) {
- foreach (func_get_args() as $class) {
- if (is_object($class)) {
- overload(get_class($class));
- } elseif (is_string($class)) {
- overload($class);
- }
- }
- } else {
- overload(get_class($this));
- }
- }
- }
- /**
- * Magic method handler.
- *
- * @param string $method Method name
- * @param array $params Parameters to send to method
- * @param mixed $return Where to store return value from method
- * @return boolean Success
- * @access private
- */
- function __call($method, $params, &$return) {
- if (!method_exists($this, 'call__')) {
- trigger_error(sprintf(__('Magic method handler call__ not defined in %s', true), get_class($this)), E_USER_ERROR);
- }
- $return = $this->call__($method, $params);
- return true;
- }
- }
- Overloadable::overload('Overloadable');
- /**
- * Overloadable2 class selector
- *
- * Load the interface class based on the version of PHP.
- *
- * @package cake
- * @subpackage cake.cake.libs
- */
- class Overloadable2 extends Object {
- /**
- * Constructor
- *
- * @access private
- */
- function __construct() {
- $this->overload();
- parent::__construct();
- }
- /**
- * Overload implementation.
- *
- * @access public
- */
- function overload() {
- if (function_exists('overload')) {
- if (func_num_args() > 0) {
- foreach (func_get_args() as $class) {
- if (is_object($class)) {
- overload(get_class($class));
- } elseif (is_string($class)) {
- overload($class);
- }
- }
- } else {
- overload(get_class($this));
- }
- }
- }
- /**
- * Magic method handler.
- *
- * @param string $method Method name
- * @param array $params Parameters to send to method
- * @param mixed $return Where to store return value from method
- * @return boolean Success
- * @access private
- */
- function __call($method, $params, &$return) {
- if (!method_exists($this, 'call__')) {
- trigger_error(sprintf(__('Magic method handler call__ not defined in %s', true), get_class($this)), E_USER_ERROR);
- }
- $return = $this->call__($method, $params);
- return true;
- }
- /**
- * Getter.
- *
- * @param mixed $name What to get
- * @param mixed $value Where to store returned value
- * @return boolean Success
- * @access private
- */
- function __get($name, &$value) {
- $value = $this->get__($name);
- return true;
- }
- /**
- * Setter.
- *
- * @param mixed $name What to set
- * @param mixed $value Value to set
- * @return boolean Success
- * @access private
- */
- function __set($name, $value) {
- $this->set__($name, $value);
- return true;
- }
- }
- Overloadable::overload('Overloadable2');
- ?>