<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## 基類的實戰應用---底層方法的封裝 ### 一 底層常用代碼的封裝 > 在控制器中基類的起著至關重要的作用,整個項目的代碼安全,復雜程度,易讀性都要看你項目的基類架構的. 舉個例子來說在項目中,特別是API中,往往在服務器端客戶端通訊都需要有一個錯誤碼 那么這個通訊碼的構造方法 也是我們最長用的,那么我們是不是應該寫到基類里呢? Ok 那我們在控制器里建立一個基類,我個人喜歡Base這個命名 OK 我就把我寫的方法復制進來了 還有一個不返回值的別名函數 ~~~ <?php /** * Created by PhpStorm. * Power by Mikkle * QQ:776329498 * Date: 2017/4/17 * Time: 9:33 */ namespace app\member\controller; class Base extends \app\base\controller\Base { /** * Power by Mikkle * QQ:776329498 * @param string $code * @param array $data * @param string $msg * @return array */ static public function showReturnCode($code = '', $data = [], $msg = '') { $return_data = [ 'code' => '500', 'msg' => '未定義消息', 'data' => $code == 1001 ? $data : [], ]; if (empty($code)) return $return_data; $return_data['code'] = $code; if(!empty($msg)){ $return_data['msg'] = $msg; }else if (isset(ReturnCode::$return_code[$code]) ) { $return_data['msg'] = ReturnCode::$return_code[$code]; } return $return_data; } static public function showReturnCodeWithOutData($code = '', $msg = '') { return self::showReturnCode($code,[],$msg); } } ~~~ ReturnCode 的源代碼 >[info] 這個返回碼是每個項目初期設定的,項目越大越復雜,這個返回碼可能也越多, > 大項目或者多語言項目可以結合Lang語言包配合使用 我這里只做一個簡單的示例 不再過多說明了 ~~~ <?php /** * Created by PhpStorm. * Power by Mikkle * QQ:776329498 * Date: 2017/4/14 * Time: 10:09 */ namespace app\base\controller; class ReturnCode { /** * Power by Mikkle * QQ:776329498 * @param $code * @param $data * @param $msg */ static public $return_code = [ '1001' => '操作成功', '1002' => '你想做什么呢', //非法的請求方式 非ajax '1003' => '請求參數錯誤', //如參數不完整,類型不正確 '1004' => '請先登陸再訪問', //未登錄 或者 未授權 '1005' => '請求授權不符', ////非法的請求 無授權查看 '1006' => '數據加載失敗', // '1010' => '數據不存在', // '1020' => '驗證碼輸入不正確', // '1021' => '用戶賬號或密碼錯誤', // '1022' => '用戶賬號被禁用', // '1030' => '數據操作失敗', // ]; } ~~~ Ok 那么我們的控制器繼承了基類了,我們就可以輕松調用這些方法了 下面一段就是控制器里的方法 ~~~ /** * 獲取用戶信息 * Power by Mikkle * QQ:776329498 * @return array */ private function getUid(){ //數據庫字段 網頁字段轉換 $param = [ 'userid' => 'userid', 'userpwd' => 'userpwd', 'mobile' => 'mobile', ]; $param_data = $this->buildParam($param); if (empty($param_data['userid'])&&empty($param_data['mobile'])) return self::showReturnCodeWithOutData(1003); $check_login = $this->doModelAction($param_data, 'base/Member.login', 'base/Member', 'checkLogin'); if (!isset($check_login['code'])) $this->showReturnCodeWithSaveLog(1111); if ($check_login['code'] == 1001) { } return $check_login; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看