1: | <?php |
2: | /** |
3: | * This code is licensed under AGPLv3 license or Afterlogic Software License |
4: | * if commercial version of the product was purchased. |
5: | * For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files. |
6: | */ |
7: | |
8: | namespace Aurora\System\Module; |
9: | |
10: | /** |
11: | * @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0 |
12: | * @license https://afterlogic.com/products/common-licensing Afterlogic Software License |
13: | * @copyright Copyright (c) 2019, Afterlogic Corp. |
14: | * |
15: | * @package Api |
16: | */ |
17: | class Decorator |
18: | { |
19: | /** |
20: | * |
21: | * @var string |
22: | */ |
23: | protected $sModuleName; |
24: | |
25: | /** |
26: | * |
27: | * @param string $sModuleName |
28: | */ |
29: | public function __construct($sModuleName) |
30: | { |
31: | $this->sModuleName = $sModuleName; |
32: | } |
33: | |
34: | /** |
35: | * |
36: | * @return Decorator |
37: | */ |
38: | public static function __callStatic($sMethodName, $aArguments) |
39: | { |
40: | return new self($sMethodName); |
41: | } |
42: | |
43: | /** |
44: | * |
45: | * @param string $sMethodName |
46: | * @param array $aArguments |
47: | * @return mixed |
48: | */ |
49: | public function __call($sMethodName, $aArguments) |
50: | { |
51: | $mResult = false; |
52: | $oModule = \Aurora\System\Api::GetModule($this->sModuleName); |
53: | if ($oModule instanceof AbstractModule) { |
54: | $mResult = $oModule->CallMethod($sMethodName, $aArguments); |
55: | } |
56: | |
57: | return $mResult; |
58: | } |
59: | } |
60: | |
61: | function Decorator() |
62: | { |
63: | echo 'Decorator'; |
64: | } |
65: |