我正在开发一个非常简单的模板引擎,它允许其他人通过继承 TemplateParser 类来扩展模板解析功能。我的 TemplateParser 类的骨架如下所示:
abstract class TemplateParser {
public static function parse_template($template_file) {
//Do stuff with $template_file
$specials = array();
foreach (get_class_methods(__CLASS__) as $method) {
if(strpos($method, "replace_") !== false) {
$specials[] = $method;
}
}
}
}
我想做的是能够获取一个子类并在父类“自动”知道的子类中添加任意数量的 replace_XXXXX 方法。我的问题是__CLASS__
常量总是等于'TemplateParser',即使在子类上调用也是如此。有什么方法可以从 TemplateParser中获取子类的方法?