home-code

示例❤源码




### 分析概述

* 需求分析:
  - 假如每个模板后面,想增加一段js代码,来执行访问统计,计划任务 或 检测输出动态的js标签等;除了每个模板手动增加一段代码以外,有没有更简洁的办法?
  - 假如某一个功能组,如后台,会员中心,需要统一检测权限;或一些复杂的场景,要自定义一些php扩展方法;这又怎么实现?
  - 模板 扩展类库 就针对如上场景 而设计的 一组扩展类库;

* 概述:
  - 针对每一个功能组,都可有自己的 模板 扩展类库;
  - 模板 扩展类库 与 控制器 放在同一目录;即在模板目录下的:/\_ctrls/下;
  - 命名空间 与 控制器 相同;类名以 `tex`(template-extend缩写)开头;
  - 多个模板通用的 类库文件名为 `texBase.php`,在这一组模板中,会自动加载;
  - 其它扩展类库 可按模型一个类库文件;需要手动加载;


### 扩展模板类库

* `texBase.php` 公用类库
  - `init($obj)` 方法名固定,输出每个模板前执行;
  - `pend()` 方法名固定,输出每个模板后,附加到模板尾部的代码;
  - 其它方法,可自定义;调用方式如:\imcat\demo\texBase::myfunc(1,2),
  - 或者用助手函数:tex('texBase')->myfunc(1,2);

* `texDemo.php` 自定义扩展类库,可自定义类名
  - 调用 \imcat\demo\texDemo::ufunc(3,4);
  - 推荐 用助手函数:tex('texDemo')->ufunc(3,4);

* Demo代码效果
  - [texBase代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/_ctrls/texBase.php),
    [texDemo代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/_ctrls/texDemo.php)
  - [模板代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/tptag/extra.htm),
    [模板输出效果]({=PATH_PROJ}/demo.php?tptag-extra)
  - 提示:查看Demo效果时,请`查看源代码` 对比输出的路径


-End-