私は、他の人が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内から子クラスのメソッドを取得する方法はありますか?