我有以下类别的,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] 删除。
我来说两句