epii/template-engine

一个超级简单的php template engine,可扩展其它模板引擎。

1.1.7 2020-05-21 02:33 UTC

This package is auto-updated.

Last update: 2024-04-10 10:46:38 UTC


README

install

{
    "require": {
        "epii/template-engine": ">=0.0.1"
    }
}
require_once __DIR__ . "/vendor/autoload.php";

$config = ["tpl_dir" => __DIR__."/view","cache_dir"=>__DIR__."/cache"];

\epii\template\View::setEngine($config);



$data = ["name" => "张三", "age" => "222","key_name"=>"name1","info"=>["name1"=>"李四"],
    "list"=>[
        ["name"=>"任0"],
        ["name"=>"任1"],
        ["name"=>"任2"],
        ["name"=>"任3"]
    ]
];
\epii\template\View::display("a/index", $data);

其它方法

View::fetch($file, $data);
View::display($file, $data);
View::fetchContent($content, $data);
View::displayContent($content, $data);


View::addCommonData(Array $data);//设置公共数据

//自定义规则
View::addStringRule($string_find, $string_replace);
View::addPregRule($preg_find, $replace_string);
View::addPregRuleCallBack($preg_find, callable $replace);

支持第三方引擎

View::setEngine($config,支持自定义模板引擎类,默认为\epii\template\engine\EpiiViewEngine::class);
// 如果使用纯php本身语言为模板,只需使用\epii\template\engine\PhpViewEngine::class  即可
//第三方类只需实现 接口 epii\template\i\IEpiiViewEngine

在模板文件中 a/index.php

以下语法为默认模板引擎\epii\template\engine\EpiiViewEngine::class

{$name} ,{$info.name1},{$info.$key_name}//方法一
<?php echo $name; ?>, <?php echo $info[$key_name]; ?>//方法二
<?=$name?> ////方法三

函数支持

{$time_int|date,Y-m-d H:i:s,$0} //$0 代表当前值,逗号隔开为参数顺序

也可以

{:date,Y-m-d H:i:s,$time_int} //

函数中的参数如果有","号,用"\,"代替

{:rtrim,aaa\,,\,}// 相当于 echo rtrim("aaa,",",");

函数中的参数如果有变量,可以直接写变量,但如果使用变量连接则用"\{\}"来区分变量

{:rtrim,aaa\,,$a} // 相当于 echo rtrim("aaa,",$a);
{:rtrim,aaa\,,aa\{$a\}bb} // 相当于 echo rtrim("aaa,","aa".$a."bb");

遍历与其他

{loop $list}

    {$key},{$value.name}

{/loop}


{loop $list $mykey=>$myvalue}
{$mykey},{$myvalue}
{/loop}

{foreach $list}

    {$key},{$value.name}

{/foreach}


{foreach $list $mykey=>$myvalue}
{$mykey},{$myvalue}
{/foreach}


{if  $name=="aaa" }
    1111111111
{elseif $name=="cccc"}
    333333
{else}
   00000000
{/if}

包含其它模板文件

{include a/b}
{include a/b\{$a\}}
{include "a/b\{$a\}"}

?号语法

{? $a}  
{? $a 1}  
{? $a b} 

相当于

<?php   echo isset($a)?$a:""  ?> //
<?php   echo isset($a)?$a:"1"  ?> //
<?php   echo isset($a)?$a:"b"  ?>

并且

{$name?}
{$name?"张三"}
{$info["age"]?"18岁"}
{$info.age?"18岁"}
{loop $list.info?[]}

相当于

<?php   echo isset($name)?$name:($name="");  ?> //
<?php   echo isset($name)?$name:($name="张三");  ?> //
<?php   echo isset($info["age"])?$info["age"]:($info["age"]="张三");  ?> //
<?php  foreach(isset($list["info"])?$list["info"]:($list["info"]="张三") as $key=>$value)  ?> //
 

默认参数

{$_view.get.}
{$_view.post.}
{$_view.server.}
{$_view.cookie.}
{$_view.sesstion.}

支持php原生所有语法