<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                https://blog.csdn.net/weixin_43409309/article/details/107148582 寫在前面 tp6發布已經有大半年了,之前做項目一直用的tp5,甚至沒有用5.1,是因為tp5用來做了很多個項目,文檔前后翻了可能有兩三遍,所以對tp5會比較熟悉(個人感覺)。最近剛好做數據庫的大作業,時間不大夠,放棄了原來用springboot 的打算;正巧又打算把之前的項目從tp5遷移到tp6,所以打算借著這個機會先把tp6的坑踩一下,而且有之前tp5的基礎,應該問題不大。 接下來我會按照開發過程的順序,從控制器(C)、模型(M)、一些配置、亂七八糟會用到的地方進行對比,同時也會講一些坑點。 不同點 安裝 首先一個比較大的差別是安裝不再有分發壓縮包的形式,改成了用composer來分發。2020年了,這確實是一個比較好的方案,看得出tp已經是一個比較成熟的框架了。而且同大版本號可以通過composer直接更新,整個流程比較流暢。 食用方式: composer create-project topthink/think tp 1 ※坑點:composer國內訪問較慢,換源可以大大提升體驗,方法可以參考https://blog.csdn.net/weixin_43409309/article/details/105577082 配置文件 比較明顯的是tp5里面的config.php被拆分成了app、cache、database、route等等模塊,放在了config文件夾里。這個部分實際上變動不太大,實現也是通過配置加載的方式,我在tp5的時候已經有自己定義配置然后加載了,這個部分沒有太大亮點。 值得一提的是,tp6新引入了一個.env的文件,可以通過讀取這個環境設置去配置數據庫等等之類config里面的內容。文件采用ini格式,可以修改數據庫連接等常用的配置,比較方便。之前如果分散在各處的一些配置(如ip地址、密碼加密的鹽值之類)可以放在同一個地方了,方便了在不同環境里部署。 但是,這里要打一個但是,我一開始以為這里是一個類似springboot里面.properties文件的那種機制,可以通過不同的環境文件區分例如測試環境和開發環境。實際上只能存在一個名叫".env"的文件(注意不是后綴名)。這里就會出現一個,在不同環境切換時可能會出現誤操作覆蓋了這個文件的情況,始終覺得有些別扭。 ※坑點:環境文件的命名一定是“.env",沒有別的字符 自帶web服務器 這確實是一個比較大的改變,調試的時候再也不需要拿出xampp了,直接php think run就可以在本地啟動一個web服務器,還可以用-p參數指定端口,確實比較方便。我現在已經習慣了在PHPstormProjects下直接開發項目(因為用pycharm用多了),如果要把文件復制到htdocs里面才能測試就很麻煩,這個web服務器有點對我胃口。 ※坑點:不知道是什么原因,感覺這個web服務器性能可能有問題,一個普通的響應居然用時500ms+,生產環境下還是用正經的web服務器。 目錄 新版本的目錄是有比較大的變化的,例如之前的config.php就拆分成了一個config文件夾,application文件夾重命名為app文件夾,等等之類。 ※坑點:建議看一下tp6文檔里的目錄結構 控制器 這個方面變化還挺大,感覺底層可能有比較大的變動。以往控制器需要繼承think\Controller類,現在官方有一個BaseController,實現的控制器只需要繼承這個控制器基礎類就可以。(在Model上就沒有看到這個變化) json接口 剛好說完控制器,就必須得說一下我在做JSON-RPC的時候經常用的一套方法:封裝一個BaseController,在這里構造用來返回的JSON;然后其他控制器繼承這個基類控制器,就可以比較方便地渲染JSON數據返回。現在的workaround跟原來也是類似的,用一個ResponseController去繼承BaseController,然后其他控制器再繼承ResponseController。 ※坑點:這里有一個比較奇怪的改變是,tp5可以在配置文件中設置返回類型為json,這樣在返回時只需要返回一個數組,框架就能包裝成json返回。在tp6里沒有找到這樣的配置,好像只能手動json()然后再返回。 ※坑點:輸入的時候也是,以往輸入函數可以自動處理json,例如可以通過input("post.")獲取到post上來的json,然后解析成一個數組;tp6把json轉換成一個表單,需要通過類似表單獲取的方式訪問,體驗跟tp5稍有不同。 跨域 還記得之前的跨域問題嗎?(https://blog.csdn.net/weixin_43409309/article/details/104287425)這個問題在tp6里終于有比較方便的解決方案了,只需要在middleware.php中注冊\think\middleware\AllowCrossDomain就可以搞定跨域了。 中間件 tp6改進了中間件,具體的使用可以看一下文檔,因為我沒有用過 ,這方面沒太大感覺。 總結 雖然說是一個大版本更新,底層有比較大的改變,實際操作跟tp5差別并不大。有朋友說tp6剛出的時候比較多bug,因此我也是沒有第一時間嘗新;現在半年多過去,感覺已經能夠穩定使用了,在這一兩天中也沒有發現其他什么大的問題。 另外有一個比較想吐槽的問題是,tp6的文檔更新得真的太慢,很多文檔目前還欠缺,例如視圖層的文檔就直接叫你參考tp5的了,以及tp5的完全開發手冊其實也還有很多坑沒有填上,而且在說明上也不夠清楚。另外,助手函數在附錄中單列了出來,但又沒有具體的文檔,只有一個名錄,這方面有點拉胯。希望團隊能重視一下文檔的建設,像我這樣的菜雞在學習起來會比較有困難。 ———————————————— 版權聲明:本文為CSDN博主「Leslie_Leung」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/weixin_43409309/article/details/107148582
                  <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>

                              哎呀哎呀视频在线观看