Thinkphp 实现动态include

来源:互联网 发布:bgm制作软件 编辑:程序博客网 时间:2024/06/07 04:44
 
 
     经常会有这样的需求:
     1. 网站的很多页面都会使用共同的外部静态资源文件,比如说,网站的顶部header、底部footer、菜单栏navigation,这时候使用include包含同一个外部资源文件就比较适合;
    

     2. 如果一个网站需要有权限控制显示不同的菜单,有一个种方法可以通过权限的控制参数动态的显示哪一个功能显示,哪一个功能不显示,这种方法只适合比较简单的功能,如果权限功能很复杂,就会有很多冗余代码,前后端耦合太大,并且后期维护基本不可能了

3. 比较好的方式是
   a. 不同的权限,有不同的菜单目录独立的文件,比如说navigation_admin.html,navigation_user.html
   b. 根据不同权限动态include不同的菜单文件
   很多人都想直接给include传递一个参数,然后动态加载不同的文件,就像下面这个样子

  可是问题来了,thinKphp的include并不支持动态加载文件,其机制加载一次之后,将不会再渲染之后动态变更的,网上有的教程是修改源码,这明显是不妥的.

4. 下面简单介绍一下如何利用thinkphp超级强大的T函数和A函数:
   a. 假设有两个不同的navigation的静态文件
  

   b. 需要新建一个CommonController.class.php,我这里是根据session('target_menu‘)的值去动态判断应该引入的是哪一个navigation文件
  
c. 假设有一个页面index.html需要引入,只需要如下简单的两步就可以了


d.然后就可以动态的显示不同的结果啦






0 0
原创粉丝点击