需要带有类的模板文件

时间:2013-04-07 15:27:04

标签: php class function templates require

您好我正在尝试制作自己的简单模板系统 而我只是在学习课程,所以我正在尝试用类和对象来做。

如果我将它放在每个文档的顶部,它就可以工作:

$template = new Includes('name', 'path');
$include = new Includes('name', 'path'); 

但感觉它不应该是必要的,而且它不那么漂亮。

这就是我的代码现在安排的方式

的index.php:

<?php
require_once 'class_include.php';
$template->loadTemplate('body');

body.php:

 <?php require_once 'class_include.php'; ?>
    <head>

    <?php $template->loadTemplate('head'); ?>

</head>
<body>

<?php
    $template->loadTemplate('sidepanel');
    $template->loadTemplate('content');
?>
</body>

class_include.php:

class Includes {

public function loadTemplate($name, $path = 'template'){
    require_once "$path/$name.php";
}
public function loadInc($name, $path = 'inc'){
    require_once '$path/$name' . '.php';
}
}
$template = new Includes('name', 'path');
$include = new Includes('name', 'path');  

错误消息:

(!)致命错误:在C:\ wamp \ www \ project \ template \ body.php

(!)注意:未定义的变量:C:\ wamp \ www \ project \ template \ body.php中的模板

感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

认为在您的代码中,您应该使用静态方法而不是对象。
的index.php

<?php
require_once 'class_include.php';
Includes::loadTemplate('body');

<强> body.php

<head>
    <?php Includes::loadTemplate('head'); ?>
</head>
<body>
    <?php
        Includes::loadTemplate('sidepanel');
        Includes::loadTemplate('content');
    ?>
</body>

<强> class_includes.php

class Includes {

    public static function loadTemplate($name, $path = 'template'){
        require_once "$path/$name.php";
    }

    public static function loadInc($name, $path = 'inc'){
        require_once '$path/$name' . '.php';
    }
}