-
Notifications
You must be signed in to change notification settings - Fork 0
/
Decorator.php
74 lines (73 loc) · 2.06 KB
/
Decorator.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
/**
* Pattern: Decorator
*
* PHP version 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category PHP
* @package PHP_Beautifier
* @author Claudio Bustos <cdx@users.sourceforge.com>
* @copyright 2004-2010 Claudio Bustos
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* @version CVS: $Id:$
* @link http://pear.php.net/package/PHP_Beautifier
* @link http://beautifyphp.sourceforge.net
*/
/**
* Implements the Decorator Pattern
*
* @category PHP
* @package PHP_Beautifier
* @author Claudio Bustos <cdx@users.sourceforge.com>
* @copyright 2004-2006 Claudio Bustos
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* @version Release: @package_version@
* @link http://pear.php.net/package/PHP_Beautifier
* @link http://beautifyphp.sourceforge.net
*/
abstract class PHP_Beautifier_Decorator implements PHP_Beautifier_Interface
{
protected $oBeaut;
/**
* __construct
*
* @param PHP_Beautifier_Interface $oBeaut PHP_Beautifier Object
*
* @access protected
* @return void
*/
function __construct(PHP_Beautifier_Interface $oBeaut)
{
$this->oBeaut = $oBeaut;
}
/**
* __call
*
* @param mixed $sMethod Method name
* @param mixed $aArgs Method arguments
*
* @access protected
* @return void
*/
function __call($sMethod, $aArgs)
{
if (!method_exists($this->oBeaut, $sMethod)) {
throw (new Exception("Method '$sMethod' doesn't exists"));
} else {
return call_user_func_array(
array(
$this->oBeaut,
$sMethod
),
$aArgs
);
}
}
}
?>