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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                `ExpressPHP` 在路由配置文件 `application/route.php` 進行路由注冊。 ## 注冊路由規則 引入命名空間 ~~~ use sys\Route; ~~~ 注冊路由規則 >[info] Route::rule('路由表達式', '路由地址'); ## 路由表達式 路由表達式是正則表達式的一部分,最終都會被 `Route` 轉化為正則,例如: ~~~ Route::rule('news/forum/:name', '\app\controller\News->forum'); ~~~ 上面的路由表達式 `news/forum/:name` 將轉化為: ~~~ `^news/forum/([\w-]+)` ~~~ 根據正則表達式,路由表達式 `news/forum/:name` 能匹配下面的URL: ~~~ http://localhost/news/forum/10001 http://localhost/news/forum/v10001 http://localhost/news/forum/v-10001 ~~~ ### [ 變量 ] ` :name` 是一個變量,你可以隨意命名,變量是可以定義規則的,沒有定義規則的變量默認為 `[\w-]+`,變量所在URL段如果匹配成功,匹配的值將保存下來,可以通過 `Request` 類訪問到,詳情可查看請求類的文檔。 ~~~ use sys\Request; echo Request::route('name'); ~~~ >[success] 變量還可以在 **路由地址** 中使用 ## 路由地址 路由地址 = 命名空間(目錄 + 類名) + 方法名,例如: ~~~ Route::rule('news/forum/:name', '\app\controller\News->forum'); ~~~ 上面的路由地址 `\app\controller\News->forum` 分為三部分: 第一部分:目錄 ~~~ \app\controller\ ~~~ 第二部分:類名 ~~~ News ~~~ 第三部分:方法名 ~~~ ->forum ~~~ ### [ 變量 ] 路由地址也能使用變量,但是只能在 **綁定方法模式** 中使用 >[warning] 請不要在路由地址的 **類名** 部分使用變量。 ## 綁定方法模式 `ExpressPHP` 為了提高性能與效率,開發了該模式,只需注冊一條路由規則,綁定的控制器下的所有方法都可在URL中訪問,使用方式如下: ~~~ Route::rule('api/news/:method', '\app\controller\News\:method', Route::BIND_METHOD); ~~~ 能匹配下面的URL: ~~~ http://localhost/api/news 路由至 app\webapi\controller\News->index() http://localhost/api/news/ 路由至 app\webapi\controller\News->index() http://localhost/api/news/article 路由至 app\webapi\controller\News->article() http://localhost/api/news/edit_id 路由至 app\webapi\controller\News->editId() ~~~ 變量使用在方法名部分時,例如: ~~~ \app\controller\News\:method ~~~ 下劃線分割命名會自動轉換為駝峰命名,例如: ~~~ http://localhost/api/news/edit_id 路由至 app\webapi\controller\News->editId() ~~~ 使用在目錄部分時,不會轉換,例如下面的 `:v` 變量: ~~~ Route::rule(':v/news/:method', '\app\:v\controller\News\:method', Route::BIND_METHOD); ~~~ ## 完全匹配 規則匹配檢測的時候只是對URL從頭開始匹配,只要URL地址包含了定義的路由規則就會匹配成功,如果希望完全匹配,可以在路由表達式最后使用$符號,例如: ~~~ Route::rule('news/article/:id$', 'webpage/controller/News/article'); ~~~ 下面的URL會匹配成功 ~~~ http://localhost/api/news/article/10010 ~~~ 下面的URL會匹配失敗 ~~~ http://localhost/api/news/article/10010/2 ~~~ ## URL目錄 有些URL是一個目錄,例如: ~~~ http://localhost/news http://localhost/news/ ~~~ 這樣的URL在定義路由表達式時,需要以 `/*$` 結尾,例如: ~~~ Route::rule('news/*$', 'webpage/controller/News/index'); ~~~ ## 首頁 配置首頁路由如下: ~~~ Route::rule('/*$', '\app\controller\Index->index'); ~~~ >[warning] 請不要在首頁使用 **綁定方法模式** 。 為什么不能使用綁定方法模式?因為首頁在所有框架設計中都比較特殊,首頁會與URL目錄生產歧義,比如: ~~~ http://localhost/news ~~~ 到底要指向 Index 控制器的 news 方法,還是指向 news 控制器的 index 方法呢?所有框架都選擇了后者,所以 ExpressPHP 不能在首頁使用綁定方法模式。
                  <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>

                              哎呀哎呀视频在线观看