<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                #11.錯誤處理 在項目中,當報錯時,會加載相應的錯誤頁面。當我們throw一個異常的時候,將自定義的錯誤頁面進行加載。 首頁創建一個自定義的錯誤異常的模板 ```cpp |-app 前臺 | |-views 存放所有的頁面 | | |-error 錯誤目錄 | | | |-error.php 錯誤頁面 <?php /** * 錯誤頁面 * User: find35.com * Date: 15/12/26 * Time: 下午7:46 */ echo "<h2>這里是自定義的異常報錯模板:".$msg."<h2>"; ``` 然后我們開始創建一個自定義的錯誤類 ```cpp |-core 框架核心目錄 | |-MyException.class.php 用戶自定義的錯誤異常類 <?php /** * 用戶自定義的錯誤異常類 * User: find35.com * Date: 15/12/26 * Time: 下午7:48 */ class MyException extends Exception { /** * 錯誤頁面加載 * @param $msg */ public function showError($msg){ $err_dir = 'app/views/error/error.php'; //判斷錯誤頁面是否存在 if(file_exists($err_dir)){ require $err_dir; } } } ``` 然后我們開始在項目中使用它,首先在app類中使用 ```cpp |-core 框架核心目錄 | |-App.class.php URL重寫類 <?php /** * Created by PhpStorm. * User: find35.com * Date: 15/12/25 * Time: 上午10:53 */ class App { protected static $controller = 'Home';//控制器名 protected static $method = 'index';//方法名 protected static $pams = array();//其他參數 /** * url重寫路由的url地址解析方法 */ protected static function paseUrl(){ if(!empty($_GET['url'])){ $url = explode('/',$_GET['url']); //得到控制器 if(isset($url[0])){ self::$controller = $url[0]; unset($url[0]); } //得到方法名 if(isset($url[1])){ self::$method = $url[1]; unset($url[1]); } //判斷是否有其他參數 if(isset($url)){ self::$pams = array_values($url); } } } /** * 項目的入口方法 * @throws Exception */ public static function run(){ self::paseUrl(); //得到控制器的路徑 $url = 'app/controllers/'.self::$controller.'.class.php'; //判斷控制器文件是否存在 if(file_exists($url)){ $c = new self::$controller; }else{ throw new MyException('控制器不存在'); } //執行方法 if(method_exists($c,self::$method)){ $m = self::$method; $new_pams = array(); $num = count(self::$pams); //傳遞參數,判斷是否有參數 if($num > 0){ //判斷傳遞的參數的數量是否是2的倍數 if($num % 2 == 0){ //將參數進行處理 for($i=0;$i<$num;$i+=2){ $new_pams[self::$pams[$i]] = self::$pams[$i+1]; } }else{ throw new MyException('非法參數!'); } } $c->$m($new_pams); }else{ throw new MyException('方法不存在'); } } /** * 自動加載類方法 * @param $className * @throws Exception */ public static function myAutoloader($className){ //控制器類文件目錄 $controller = 'app/controllers/'.$className.'.class.php'; //模型類文件目錄 $model = 'app/models/'.$className.'.class.php'; //核心類文件目錄 $core = 'core/'.$className.'.class.php'; if(file_exists($controller)){ require_once $controller; }else if(file_exists($model)){ require_once $model; }else if(file_exists($core)){ require_once $core; }else{ throw new MyException('類文件不存在'); } } } ``` 最后我們在入口文件中也是用它 ```cpp |-index.php 項目前臺入口文件,單一入口 <?php /** * Created by PhpStorm. * User: find35.com * Date: 15/12/24 * Time: 下午5:15 */ echo "<meta charset='utf-8'>"; require_once 'core/App.class.php'; //注冊一個 spl_autoload_register(array('App','myAutoloader')); try{ App::run(); throw new MyException(); }catch(MyException $e){ $e->showError(($e->getMessage())); } ``` 此時我們在瀏覽器中輸入 ```cpp http://localhost/php_mvc//home2/index ``` 如果返回的如下,則表示成功 ```cpp 這里是自定義的異常報錯模板:控制器不存在 ```
                  <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>

                              哎呀哎呀视频在线观看