这个特定PHP类的功能

时间:2014-03-09 06:08:52

标签: php function class oop templates

我是PHP“class”的新手。我正在寻找一个可以帮助我创建PHP模板的脚本,我找到了这个,但我似乎无法理解这里发生了什么。任何人都可以详细解释。我将非常感激。感谢..

<?php
class skin {
    var $filename;

public function __construct($filename) {
    $this->filename = $filename;
}

public function mk($filename) {
    $this->filename = $filename;
    return $this->make();
}

public function make() {
    global $CONF;
    $file = sprintf('./'.$CONF['theme_path'].'/'.$CONF['theme_name'].'/html/%s.html', $this->filename);
    $fh_skin = fopen($file, 'r');
    $skin = @fread($fh_skin, filesize($file));
    fclose($fh_skin);

    return $this->parse($skin);
}

private function parse($skin) {
    global $TMPL, $LNG;

    $skin = preg_replace_callback('/{\$lng->(.+?)}/i', create_function('$matches', 'global $LNG; return $LNG[$matches[1]];'), $skin);
    $skin = preg_replace_callback('/{\$([a-zA-Z0-9_]+)}/', create_function('$matches', 'global $TMPL; return (isset($TMPL[$matches[1]])?$TMPL[$matches[1]]:"");'), $skin);

    return $skin;
}
}
?>

1 个答案:

答案 0 :(得分:3)

在课程开始时__construct()将文件名分配给变量,以便在课程的任何地方使用($filename)。

然后有一个解析它的函数parse()

但是出于技术目的,此函数嵌套到另一个函数中。 parse()之前的private关键字意味着它可以由类本身使用。

因此,函数make()负责使用parse();

最终功能mk()调用make()

parse()解析模板。意味着它使用模板特殊语法(您必须在模板文件中引用)替换实际的最终解析变量和数据。

make()函数获取文件的内容,并在其中printf()生成一个可用的完整URL,从给定的参数到它。