从此不求人:自主研发一套PHP前端开发框架(32)

插件化后台

index.inc(Controller目录下面的)

<?php
   class index extends _Master{

        /**
        *permission{"role":"admin"}
        */
        function adminindex(){
          $this->_isadmin = true;
          $this->setView(‘index‘);
        }

       function showindex(){

          $this->setVar(‘title‘,‘测试一下大家的灵活性!‘);
          $this->setView(‘index‘);
          if(is_login()){
            $this->setVar(‘username‘,the_user()->user_name);
          }

        }

   }
 ?>

主目录下面的index.php

<?php
    include(‘lkphp.conf‘);
    //获取Controller参数
    $_controller = isset($_GET[‘controller‘])?$_GET[‘controller‘]:‘‘;
    //获取action
    $_action = isset($_GET[‘action‘])?$_GET[‘action‘]:‘‘;
    //如果传入的controller 为空或者在定义的自定义列表里面那么就终止程序向下执行
    if($_controller === ‘‘|| in_array($_controller,explode(‘,‘,LKPHP_FORBIDDEN_TYPE))) exit();
    error_reporting(E_ALL);//设定报错级别默认最高用于开发环境好调试错误
    $current_role=array("admin","guest");

    require(LKPHP_PATH.‘Common/functions.inc‘);//加载公共函数库
    require(LKPHP_PATH.‘MVC/Controller/_Master.inc‘);//加载Controller父类
    $_control_path = LKPHP_PATH.‘MVC/Controller/‘.$_controller.‘.inc‘;//获取控制器类绝对地址
    if(!file_exists($_control_path)){
         exit();//判断是否存在此控制器类文件
    }
    require($_control_path);
    if (!class_exists($_controller)) {
        exit();//判断是否存在此类
    }
    $_init_controller = new $_controller();
    if (method_exists($_init_controller, $_action)) {
        //在这里的话我们要进行角色判断
        $getClass = new ReflectionClass($_controller);
        $getMethod = $getClass->getMethod($_action);
        if($getMethod){
          $doc = $getMethod->getDocComment();//这个是可以获取php之中的注释的
          if(preg_match("/permission\{(.*?)\}/i", $doc,$match)){
                 $permission = $match[1];
                 $permission = json_decode(‘{‘.$permission.‘}‘);

                 if(!in_array($permission->role,$current_role)){
                       exit(‘对不起您的权限不够,无法进行此操作!‘);
                 }
          }
          $_init_controller->$_action();
          $_init_controller->run();
        }

    }

?>
时间: 2024-11-15 00:38:47

从此不求人:自主研发一套PHP前端开发框架(32)的相关文章

从此不求人:自主研发一套PHP前端开发框架(31)搭建后台框架

1.使用的是easyui作为后台页面框架 header.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id=&qu

国内自主研发的游戏引擎一览

国内自主研发的引擎究竟有多少.因为我在某论坛看到某些人说.只有完美和剑侠3 才是称的上是国产,不是自己的引擎开发的游戏不叫国产 我汗. 不太赞同. 还有国内自主的真的只有这两个么 我也不认同. 有人说 那是抄的有人说那是完全自主的   这个我不知道,,,下面来..(有不对的 有少的 希望大家增加或者指正) 国内自主研发的引擎知多少.哈.我在网上搜了下.除了大家熟知的完美时空和金山剑侠3的引擎以外,还有这些,,不管他们是好是坏 是新是旧,是只放消息即将推出~   是完全自主还是什么的?还是它们的游

AI都能自主研发药物了,全智能语音还有多久?

AI是如今科技领域的热门话题,它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法.技术及应用系统的一门新的技术科学.不只是企业,高精尖的研究团队也投身进入,并且有了不少的技术上面突破. 近日,据科技日报报道,澳大利亚弗林德斯大学的研究团队利用AI技术研制出一种名为"涡轮增压"的流感疫苗,这种疫苗可以刺激人体免疫系统产生更多的抗流感病毒抗体.团队首席专家.弗林德斯大学医学教授尼古拉·彼得罗夫斯基称,这是全球首个进入人体试验阶段的完全由人工智能研制的流感疫苗. 研究团队表示,此次改进型

自主研发Linux操作系统是当务之急

去年11月30日,俄罗斯向我国政府建议共同联手开发自主Linux操作系统,至今时间已经过去半年,不见动静. 近年来,俄罗斯自主研发的ALT Linux操作系统发展很快,势头不错.我们应该抓住战机.搞好中.俄合作. 以往,我们业界的主要问题是:不承认Linux操作系统是自由软件.在我们的词汇里面根本没有自由软件这个词. 在如何对待自由软件Linux操作系统方面,我们应该向俄罗斯学习,放下架子. 说明:十年前的"六一儿童节",我与家人正好在俄罗斯,见到那里的小朋友快乐地度过自己的节日.明日

PDF编辑器让大家都能合并PDF文档 从此不求人

有很多网友对如何将两个PDF文档合并成一个PDF伤透了脑筋,不是在贴吧里求助,就在在问答知乎上提问,今天小编就要化身为解决问题小能手,帮助大家解决这个问题,让大家都能合并PDF文档,从此不求人! 首先,我们需要下载一个非常好用的PDF阅读编辑器,那就是PDF Expert for Mac.(不知道在哪里下载的,小编这里有免费的下载包哦:http://wm.makeding.com/iclk/?zoneid=17779) 下载好之后就将这个PDF阅读编辑器安装好,然后打开如果有PDF Expert

热烈庆祝华清远见成功自主研发Farsight TV 智能机顶盒

近日,华清远见研发中心再传喜讯:Farsight TV 智能机顶盒研发成功并投入教学!这是华清远见研发中心继开源平板电脑.智能医疗终端.智能家居终端后独立成功研发的又一智能硬件!至此,开创了华清远见自主研发的新纪元. 据悉,华清远见教育集团在创立之初就成立了研发 中心,从着手于嵌入式行业专业图书的编写和出版,到嵌入式培训课程每年两次的内容升级,再到独立自主研发专业开发板和实验箱,以及到2010年第一个自主 研发的智能硬件---开源平板电脑的投入教学,华清远见研发中心一直在给嵌入式培训行业带来越来

实力印证:方物自主研发虚拟化产品全线入围央采

近日,2014年度中央国家机关政府采购中心(以下简称央采)协议供货名单公布,方物软件凭借国内领先的虚拟化技术研发能力.国产化自主知识产权,获得中央机关的高度认可成功入围本年度央采协议供货名单.据了解,中央国家机关政府采购中心组织的协议采购项目,采购单位覆盖中央直属近万个机关单位,是中国政府采购领域级别最高,覆盖面最广的采购项目之一,对入围厂商的产品品质.技术含量.售后服务.企业综合实力等各方面实力设置国家最高标准和严格的要求. 民族品牌-----方物软件自主研发核心技术及虚拟化产品倍受政府青睐 

APP开发,自主研发和外包哪个好?

想必大家都知道的一个事实,就是APP开发成本高.但是面对日益激烈的市场,开发一款APP又是企业业务发展中必不可少的一环.对于大多中小企业来说,APP开发成本很重要,可能经常犹豫是否自主研发还是外包,这两者哪个性价比更高?下面是APICloud小编为大家总结的关于两者不同之处的一些基本资料.    1.自己组建团队开发 自己组建开发团队进行APP开发,人员配置上至少包括产品经理.UI设计.后台开发程序员.android人员.ios人员.测试,这样才能完成整个开发流程.对于非软件开发的企业来说,一切

前端开发框架选型清单

随着Web技术的不断发展,前端开发框架层出不穷,各有千秋,开发者在做技术选型时总是要费一番脑筋,最近,IBM高级工程师王芳侠撰文对Bootstrap.jQuery UI.jQuery Mobile.Sencha ExtJS.Sencha Touch.Sencha GXT.Dojo.Dojo Mobile.Mootools.Foundation.YUI.Kissy.QWrap 等 16 个国内外前端开发框架进行了比较详细的比较,非常值得读者借鉴. 从国外的桌面端框架来说,作者认为主要有以下几个: