从其他类向类动态添加静态函数

梅尔文

我有以下类别的,API它从其他类别中“接收”函数(仅Pipelines在此示例中),因此API :: getPipelines()返回Pipelines :: getPipelines()等等。API函数的列表将不断增长,并且此代码将变得越来越好,因此我正在寻找一种动态地将这些函数添加到API类中的方法。例如:register_methods_from(array('Pipelines', 'Blah'))做这个的最好方式是什么?

class API
{

/**
 * The current API instance
 */
private static $_instance = null;

[...]

/**
 * Define API funcs
 */
public static function getPipelines() {
    return Pipelines::getPipelines();
}
public static function getPipeline($id) {
    return Pipelines::getPipeline($id);
}

// etc...
毛毛虫

您可以__callStatic为此使用PHP的magic方法

class API
{
    static function __callStatic($name, $arguments)
    {
        if ( ! method_exists('Pipelines', $name))
        {
            return null; // Or throw error
        }

        return call_user_func_array('Pipelines::' . $name, $arguments);
    }
}

您甚至可以Pipelines在这里动态化。

您可能还需要使用自动加载,它可让你返回的实例Pipelines类似时$api = new API();使用。

希望能帮助到你!


资料来源:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 PowerMockito 模拟 Java 中其他类的静态函数

来自分类Dev

类外的静态函数

来自分类Dev

静态函数与普通类函数

来自分类Dev

案例类中的静态函数(Scala)

来自分类Dev

静态函数对类构造的好处

来自分类Dev

类中的静态函数和数组

来自分类Dev

如何直接调用类静态函数

来自分类Dev

调用 UIViewController 类的非静态函数

来自分类Dev

php动态调用类的静态函数(函数名称未知)

来自分类Dev

如何通过类的实例调用类的静态函数

来自分类Dev

在静态函数中获取静态类的属性?

来自分类Dev

来自其他类的Android调用函数,无静态

来自分类Dev

向Jenkins Workflow类路径添加其他库

来自分类Dev

通过此指针从静态函数调用类函数

来自分类Dev

PHP OOP类vs函数vs静态函数效率

来自分类Dev

PHP静态函数类保存以前的函数调用数据

来自分类Dev

TypeScript 从其他模块调用静态函数

来自分类Dev

动态向r6类实例添加函数

来自分类Dev

动态向类添加函数并将其作为绑定方法

来自分类Dev

Android-如何从其他类动态添加ListView项

来自分类Dev

在TypeScript中的泛型类上调用静态函数

来自分类Dev

在类React ES6中调用静态函数

来自分类Dev

PySide:如何使用静态函数重载类

来自分类Dev

在PHP的扩展类中使用静态函数

来自分类Dev

将类的静态函数存储在变量中

来自分类Dev

调用继承类中存在的静态函数

来自分类Dev

获取已在其上调用静态函数的类的名称

来自分类Dev

为什么类可以调用no静态函数?

来自分类Dev

在PHP的扩展类中使用静态函数