ChuannBlog

信呼oa开源项目学习

准备工作

系统入口与开发调试

  1. 系统对外接口分析
    • 主页面:index.php
    • api:api.php
    • 任务:task.php
  2. 配置文件:config /config.php
  3. 路由系统:include/View.php
    • 匹配视图函数路径

        $actpath    = $rock->strformat('?0/?1/?2?3',ROOT_PATH, $p, $d, $_m);
        define('ACTPATH', $actpath);
        $actfile   = $rock->strformat('?0/?1Action.php',$actpath, $m);
        $actfile1  = $rock->strformat('?0/?1Action.php',$actpath, $_m);
      
    • 执行视图函数,视图可直接终止本次请求并响应(通常为json)

        if(file_exists($actfile1))include_once($actfile1); // 导入视图
        if(file_exists($actfile)){
           include_once($actfile);
           $clsname   = ''.$m.'ClassAction';
           $xhrock       = new $clsname();
           $actname   = ''.$a.'Action';
           if($ajaxbool == 'true')$actname    = ''.$a.'Ajax';
            if(method_exists($xhrock, $actname)){
              $xhrock->beforeAction();
              $actbstr  = $xhrock->$actname(); // 执行视图
              if(is_string($actbstr)){echo $actbstr;$xhrock->display=false;}
              if(is_array($actbstr)){echo json_encode($actbstr);$xhrock->display=false;}
            }else{
              $methodbool = false;
              if($ajaxbool == 'false')echo ''.$actname.' not found;';
           }
            $xhrock->afterAction();
        }else{
           echo 'actionfile not exists;';
           $xhrock       = new Action();
      
  4. Model表操作include/rockFun.php
    • 通过实例化m类获得指定表的操作对象,传入的name为表的后缀(除开表的前缀)
  5. 日志分析方式
    • oa系统操作日志,存于数据库oa_flow_log表中
    • oa系统登陆日志,存于数据库oa_log表中
    • 系统运行日志
      • apache链接日志:/var/log/apache2/access.log
      • php日志,需要配置后方可使用:
        • 通过phpinfo()查明php.ini的位置,通常是: /etc/php/7.0/apache2/php.ini
        • 更改error_log = 日志文件路径(/var/php/error.log)
        • 修改日志文件夹的访问权限给apache:
          • 命令: chown -R www-data:www-data /var/php
          • 重启apache2
    • 之后就可以通过error_log(‘日志消息’)这个内置函数输出日志到指定日志文件

系统模块分析

系统表结构分析