1

我是工厂模式的新手,并且有以下工厂方法:

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");

4

1 回答 1

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'));
于 2013-06-12T12:17:56.843 回答