我是工厂模式的新手,并拥有以下工厂方法:
public static function build($class) {
$class = Helper::str_lreplace("_", "_" . System_Config::getConfig("ef_platform"), $class);
return new $class;
}
如何使用相同的工厂模式,但是对于静态方法?例如,我有以下方法调用:
Order_WooExport::registerActions();
Order_WooExport::registerFilters();
但我想打电话:
Order_WPExport::registerActions();
Order_WPExport::registerFilters();
取决于System_Config::getConfig("ef_platform");
答案 0 :(得分:0)
如果str_lreplace("_", "_" . System_Config::getConfig("ef_platform")
为您提供了要使用的类名,并且假设您使用的是PHP 5.3+,则可以尝试使用forward_static_call或类似名称:
$class = str_lreplace("_", "_" . System_Config::getConfig("ef_platform");
forward_static_call(array($class, 'registerActions'));
forward_static_call(array($class, 'registerFilters'));