summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-crt-php/src/AWS/CRT/Internal/Extension.php
blob: 780178812d8d90c0576eb904efb56896aa0a4cef (plain)
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
<?php
/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */
namespace AWS\CRT\Internal;

use \RuntimeException;

/**
 * @internal
 * Forwards calls on to awscrt PHP extension functions
 */
final class Extension {
    function __construct() {
        if (!extension_loaded('awscrt')) {
            throw new RuntimeException('awscrt extension is not loaded');
        }
    }

    /**
     * Forwards any call made on this object to the extension function of the
     * same name with the supplied arguments. Argument type hinting and checking
     * occurs at the CRT wrapper.
     */
    function __call($name, $args) {
        return call_user_func_array($name, $args);
    }
}