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

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                #6.URL路由之重寫URL路由 剛才已經成功獲取到了url,然后我們要對url進行解析,我們建立一個新的類文件來處理,這個類文件要實現的功能是:得到控制器的名稱、得到方法名、其他參數并保存。組裝得到控制器的路徑,判斷控制器文件是否存在,存在則實例化,然后判斷方式是否存在,存在則執行方法,如果控制器文件或者方法不存在則執行相應地異常報錯。 ```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(isset($_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 Exception('控制器不存在'); } //執行方法 if(method_exists($c,self::$method)){ $m = self::$method; $c->$m(); }else{ throw new Exception('方法不存在'); } } } ``` 在入口文件這里,我們要在執行run方法,并捕獲異常情況,如有異常則輸出 ```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'; require_once 'app/controllers/Test.class.php'; require_once 'app/controllers/Home.class.php'; try{ App::run(); throw new Exception(); }catch(Exception $e){ echo $e->getMessage(); } ``` 此時我們在瀏覽器中輸入 ```cpp http://localhost/php_mvc/home/index/id/13 ``` 那么在瀏覽器中展示如下,表示成功 ```cpp 這里是home控制器里的index方法 ``` 如果我們在瀏覽器中輸入一個不存在的控制器,比如 ```cpp http://localhost/php_mvc/article/index/id/13 ``` 那么在瀏覽器將中展示出異常信息 ```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>

                              哎呀哎呀视频在线观看