【YII】常用代码积累

来源:互联网 发布:卖家赠送的淘宝运费险 编辑:程序博客网 时间:2024/06/06 08:42
1. YII 使用原生SQL


1.1查询单个表
//查表得到 svn path        $connection = Yii::app()->db;        $sql = "SELECT * FROM code_coverage_project WHERE id = $code_id   LIMIT  1 ";        $command = $connection->createCommand($sql);        $rows = $command->queryAll();        $count_rows = count($rows);        //异常处理        if (0 == $count_rows)        {            $msg = Yii::t('TOAST', 'No Result  For The Code Id!');            header('Content-type: text/html; charset=UTF-8');            echo json_encode(array('error' => 1, 'message' => $msg));            exit;        }        $svn_path = $rows[0]['path']; //异常检测

1.2查询多个表

/*         *@根据类名,查找对应版本的覆盖率         *          *@$code_id   = 393;         *@$version_1 = 119577;         *@$version_2 = 120046;         *@$classname = $array_filtered_calsses[0][0];         *@print_r($classname);         *@return;         *          */        $connection = Yii::app()->db;        $sql_class_and_versions = "SELECT code_coverage.reversion_id,                                          code_qulity_class_covery.id,                                          code_qulity_class_covery.classname,                                          code_qulity_class_covery.linecoverd,                                          code_qulity_class_covery.linemissed,                                          code_qulity_class_covery.coverdrate                                  FROM                                          code_qulity_class_covery                                  LEFT JOIN code_coverage                                  ON                                         code_qulity_class_covery.code_covery_id = code_coverage.id                                  WHERE                                         code_coverage.code_project_id = $code_id AND                                         code_coverage.reversion_id IN ($version_1, $version_2) AND                                         code_qulity_class_covery.classname IN ($classname_for_sql_in); ";                $command_for_calss_and_versions=$connection->createCommand($sql_class_and_versions);        $rows_for_calss_and_versions = $command_for_calss_and_versions->queryAll();        $count_rows = count($rows_for_calss_and_versions);                if (0 == count($rows_for_calss_and_versions))        {            $msg = Yii::t('TOAST', "Sorry,no record matches in the database!");            header('Content-type: text/html; charset=UTF-8');            echo json_encode(array('error' => 1, 'message' => $msg));            exit;        }
2. 有关正则

 /*         * 从变动的文件列表提取类名         */         $count = 0;        $array_dot_java = array();        $array_change_classname = array();        $pattern_java = '/.*java$/';        $pattern_for_calss ='/cn\/com.*\/[A-z]*/';                foreach ($arr_change_files as $values)        {            if(preg_match($pattern_java,$values)) //过滤得到.java结尾的记录            {                $array_dot_java[] = $values;                if(preg_match($pattern_for_calss,$values,$matchs)) //过滤得到类名                {                    $matchs[0]=preg_replace('/\//', '.', $matchs[0]); // 替换类名中的 “/"                    $array_change_classname[] = $matchs;                }            }                }                if (0 == count($array_change_classname))        {            $msg = Yii::t('TOAST', "No class changes between the tow versions!");            header('Content-type: text/html; charset=UTF-8');            echo json_encode(array('error' => 1, 'message' => $msg));            exit;        }                //根据package name 过滤 classname        $array_filtered_calsses = array();        $pattern_to_filter_class = "/.*$package_name.*/"; // cn.com.autofans.user.service.imp        foreach($array_change_classname as $valus_to_filter_class)        {            if(preg_match($pattern_to_filter_class,$valus_to_filter_class[0]))            {                $array_filtered_calsses[] = $valus_to_filter_class;            }                }        if (0 == count($array_filtered_calsses))        {            $msg = Yii::t('TOAST', "No classes matches the packet that post from pages!");            header('Content-type: text/html; charset=UTF-8');            echo json_encode(array('error' => 1, 'message' => $msg));            exit;        }        
3. array()处理

          /*         * 查询结果解析转换为 符合json的形式         * $version_1 = 119577;         * $version_2 = 120046;         */               $r_version_1 = "r".$version_1;       $r_version_2 = "r".$version_2;       $arr_json_classname = array();       $arr_json_rate      = array();       $arr_just_rate      = array();       $arr_json_rate[$r_version_1] = array();       $arr_json_rate[$r_version_2] = array();              foreach($array_filtered_calsses as $values_switch_to_json)       {           $arr_json_classname [] = $values_switch_to_json[0];  //类名处理           $arr_just_rate[$version_1] [$values_switch_to_json[0]] = 0;           $arr_just_rate[$version_2] [$values_switch_to_json[0]] = 0;       }              foreach ($arr_json_classname as  $values_calssname)       {           foreach($rows_for_calss_and_versions as $values_switch_to_json_rate)           {               if($version_1 == $values_switch_to_json_rate['reversion_id'])               {                   if ($values_calssname == $values_switch_to_json_rate ['classname'])                   {                       $arr_just_rate [$version_1][$values_calssname] = $values_switch_to_json_rate['coverdrate'];                   }               }                              if($version_2 == $values_switch_to_json_rate['reversion_id'])               {                   if ($values_calssname == $values_switch_to_json_rate ['classname'])                   {                       $arr_just_rate [$version_2][$values_calssname] = $values_switch_to_json_rate['coverdrate'];                   }               }           }       }              foreach ($arr_just_rate [$version_1] as $value_last)       {           $arr_version_1 []= floatval($value_last);       }       foreach ($arr_just_rate [$version_2] as $value_last)       {           $arr_version_2 []= floatval($value_last);       }              foreach($arr_json_classname as $value_to_cut_classname)       {           $pattern = "/".$package_name."./";           $replacement = '';           $temp_classname = preg_replace($pattern,$replacement,$value_to_cut_classname);           $array_just_classname [] = $temp_classname;       }              $data_temp = array($r_version_1 => $arr_version_1,$r_version_2 =>$arr_version_2 );       $xaxis = $array_just_classname;       $data = $data_temp;//     $xaxis = array(  'class A', 'class B', 'class C', 'Class D', 'Class E' );//     $data = array( 'r12345'=>array(48.9, 38.8, 39.3, 41.4, 47.0), 'r67890'=>array(62.4, 53.2, 54.5, 59.7, 72.6));    echo json_encode(array('xaxis'=>$xaxis, 'coverdata'=>$data));




0 0
原创粉丝点击