由url构建的PHP模板引擎

时间:2013-07-31 19:08:00

标签: php template-engine explode geturl

我正在寻找一种我想用url构建的动态模板引擎。所以,如果我的网址是localhost / root / this / is / path / to / signup.php,php代码应该在目录中注册文件signup.php / / / / path / to /

这次我正在使用url的数组,如下面的代码所示:

$url = isset($_GET['url']) ? $_GET['url'] : null;
$url = rtrim($url, '/');
$url = explode('/', $url);

if (empty($url[0])) {
    $url[0] = "path/startpage.php";
}

if (isset($url[2])) {
    require "path/error.php";
} else if (isset($url[1])) {

    $file1 = 'path/' .$url[0].'/'.$url[1].'/'.$url[1].'.php';

    if (file_exists($file1)) {
        require $file1;
    } else {
        require "error.php";
    }

} else if (isset($url[0])) {

    $file0 = 'path/'.$url[0].'/'.$url[0].'.php';

    if (file_exists($file0)) {
        require $file0;
    } else {
    require "path/error.php";
    }
}

但是使用这个脚本我必须为每个案例做这个,这不是那么好。我希望有一个解决方案,其中代码正在查找整个URL,转到目录并需要错误或文件(如果存在)。

你能帮我吗?

1 个答案:

答案 0 :(得分:0)

Titon \ View库非常容易处理:https://github.com/titon/View

如果为模板传入路径数组,它将生成动态查找路径。 https://github.com/titon/View/blob/master/src/Titon/View/View.php#L127

示例:

$view = new Titon\View\View();
$view->addPath('/path/to/views/');
$parsed = $view->run(['path', 'to', 'lookup/folder', 'templateName]);

还可以查看测试以查看其实际效果:https://github.com/titon/View/blob/master/tests/Titon/View/ViewTest.php