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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                把ThinkPHP的官方文檔擼了3遍以上,Webman擼了兩邊,再加上實際項目的開發和對比,才有的本文章,希望能幫到大家,如有錯誤和疏漏請不吝賜教~ 1、webman內存常駐,業務執行只有3個流程(框架接收請求、框架執行業務邏輯、框架將結果返回給客戶端);TP業務流程從 nginx/apache接收請求 到 php-fpm初始化環境,如創建變量列表 到 框架初始化(載入 Composer 的自動加載 autoload 文件 開始),如實例化各種類,包括如容器、控制器、路由、中間鍵等 到 數據庫、Redis的連接、使用釋放 到 php-fpm釋放資源、銷毀所有類定義、實例、銷毀符號表等 到 php-fpm將結果轉發給nginx/apache 到 nginx/apache將結果返回給客戶端 等很多重復步驟。 2、webman沒有pathinfo,只能使用常規POST、GET等來傳遞參數,但可以用路由來定義參數來實現類似功能;TP有pathinfo,默認為 參數/值。。。,可配置格式(個人感覺過度封裝)。 3、webman默認不支持自動注入(需要安裝插件),每個方法的第一個參數貌似必須是Request對象,后面才是相關的路由變量傳遞的參數;TP默認支持自動注入(將參數中的對象自動注入容器中已有的對應類型)。 4、Request、Response、Controller、Route、Middleware、view、ExceptionHaddler、多應用 方面,大體功能是差不多的,Webman比較精簡,TP比較全面(有點凌亂不好記),有一些小區別: 多應用:TP單和多只能使用一種;而Webman默認兩種同時可用(注意單應用的路由有可能會和多應用目錄沖突),也有多應用模塊插件可以支持更多的功能。 中間件:Webman不支持控制器中間件,全局、應用、路由中間件都大同小異。 路由: a、TP的路由是一條條解析,匹配即進入,路由可重復定義;Webman稍有不同,定義時如果有相同路由,則控制臺會報錯無法啟動服務(好處是及時能發現錯誤)。 b、TP默認支持多個路由文件(route目錄,自動執行),自動載入;而Webman默認單個路由文件(config目錄下的route.php)(稍微修改下可以做到類似的功能); c、TP的多層次目錄,是用 . 來分隔;而1.4之后的版本的webman也支持多層次目錄,用 / 分隔。 d、路由規則的第一個參數:Webman是 / 開頭,而TP不是; e、TP的路由規則的第二個參數:TP是\[控制器類, '方法'\],TP是 字符串(包含目錄、控制器名和方法)。 f、都不匹配的路由:TP是route::miss,Webman是route::fallback; g、資源路由:第二個參數 和 指定方法 稍有不同; h、TP的資源路由和Webman的資源路由名稱對應: TP:\['index', 'read', 'save', 'update', 'delete'\] Webman:\['index', 'show', 'store', 'update', 'destroy'\] i、路由變量定義: TP:用 或 :xx,可選為:\[:month\] 或 Webman:用{xx},可選為:\[{xx}\] j、TP的 路由變量 也會出現在 Request 中讀取,而 Webman 沒有; k、TP的路由變量的值,為字母、數字、.號、\_號組成,其他的都不會出現(后面的也會被截斷); Webman的路由變量的值,除了 #號、?號、/號、\\號 外都支持。 l、路由變量的匹配: TP:路由變量名 和 方法的參數名 必須一致,否則出錯,它會按 名稱 來給參數賦值; Webman:路由變量名隨便定義,它會按 順序 給方法的參數一一賦值; m、返回的路由地址區別: TP:app('request')->rule()->getRule(); 返回的路由地址 不是 /號 開頭,路由變量格式:; Webman:$request->route->getPath(); 返回的路由地址 以 /號 開頭,路由變量格式:{xx}; l、TP支持Delete的body,webman不支持,會交替循環的出現404錯誤。 5、插件、擴展、模塊:webman 的 plugin目錄 類似于 TP 的 extend目錄,不過webman的命名空間是以 plugin\\ 開頭的,而TP的可以和普通使用一樣。 6、容器:TP有app()助手函數(其實就是Container::getInstance()->make),可以實例化對象(參數3控制是否為新建);webman是用 Container來實例化對象(get為重用,make為新建)。 TP可以用 bind 綁定 標識 到 容器 中(不知有何用)。 8、webman的輸出是輸出到控制臺,而TP是輸出到頁面。 9、Webman的config便捷函數可以獲取配置(配置名為文件名),但只讀(有插件可增刪改);TP需要使用 think\\facade\\Config::get('文件名') 和 set($d, '文件名')來操作,TP的可讀可寫; 10、Webman可用TP的validate、orm(Db和Model)、Cache(Redis)、Captcha。 11、TP默認支持 .env 文件;Webman需要安裝插件,或自己寫一個; 注意:Webman配置文件中若使用某方法,必須寫在helper.php 而非 function.php 中,因為載入配置時function還沒載入。 12、門面:Webman不支持,因為雖然方便書寫,但沒有代碼提示功能; 13、事件:TP默認支持;Webman需要安裝插件; TP:可以手動注冊事件到處理器;Webman只能在 config/event.php 處理; 14、服務:未知; 15、定時任務:crontab插件 16、其他: TP的控制器每次訪問都會重新構造,并調用構造函數;Webman可以在 config/app.php 中開啟:'controller\_reuse' => false,不推薦 action-hook 插件(有BUG);
                  <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>

                              哎呀哎呀视频在线观看