Maison >développement back-end >tutoriel php >PHP comprend le principe d'implémentation en écrivant vous-même une classe de modèle

PHP comprend le principe d'implémentation en écrivant vous-même une classe de modèle

*文
*文original
2017-12-23 17:17:421294parcourir

Je pense que de nombreux PHPers sont entrés en contact avec des modèles. Comment les modèles sont-ils implémentés avec leur syntaxe d'analyse spécifique ? Cet article permet à chacun de comprendre clairement le principe des modèles en écrivant une simple classe d'analyse de modèles.

mini cours

class mini {
    public $template_dir = ''; // 模板文件存放的位置
    public $compile_dir = ''; // 模板文件编译后存放的位置
    public $array = array ();
    public function assign($key, $value) {
        $this->array [$key] = $value;
    }
    /*
     * 调动compile来编译模板,并自动引入;
     */
    public function display($template) {
        $comp = $this->compile ( $template );
        include ($comp);
    }
    /*
     * 传一个参数,读取那个html模板 流程:把模板读取过来,编译成php
     */
    public function compile($template) {
        // $template是一个html文件
        $temp = $this->template_dir . '/' . $template;
        $source = file_get_contents ( $temp );
        // 再把编译后的内容保存成.php文件
        $comp = $this->compile_dir . '/' . $template . '.php';
        // 判断模板是否已经存在,或者修改;
        if (file_exists ( $comp ) && filemtime ( $temp ) < filemtime ( $comp )) {
            return $comp;
        }
        $source = str_replace ( &#39;{$&#39;, &#39;<?php echo $this->array[\&#39;&#39;, $source );
        $source = str_replace ( &#39;}&#39;, &#39;\&#39;];?>&#39;, $source );
        // echo $source;
        file_put_contents ( $comp, $source );
        return $comp;
    }
}

Recommandations associées :

[Cours] Tutoriel vidéo sur l'analyse sous-jacente PHP

Résumé de la façon de démarrer rapidement avec PHP

Résumé des fonctions concises de PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn