<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://img.kancloud.cn/af/0d/af0de67c1c503cfb975610c4cb2b6f33_1199x567.png) 首先吶,可能是受Laravel的啟發,新的TP5框架改掉了之前入口文件放在框架根目錄(TP3)的習慣,將入口文件放在了public目錄下。此目錄下的所以資源都能被URL訪問所獲取,所以對于一些敏感文件請不要放在這里 TP5支持的URL模式 ![](https://img.kancloud.cn/cb/6c/cb6cfda2d42536d14838dda08d1f0548_1189x596.png) TP5所支持的URL模式相對于TP3是不同的,對于傳統的m(模型)c(控制器)a(方法/操作)是不給予支持了 URL大小寫問題 ![](https://img.kancloud.cn/a1/00/a100eaa1470301078e52ebda22f2f06f_1237x618.png) 默認情況下,URL是不區分大小寫的,也就是說,除了開頭用的域名和參數外,后面的控制器,方法名都是不區分大小寫的 響應輸出 ![](https://img.kancloud.cn/a8/88/a8882346ee0a79df12da631d8e6117df_1133x451.png) 對于TP5控制器,本應可以返回數組(Array)格式,但是需要設置config目錄下的app.php(我使用的是TP5.1)中的default_return_type參數。參數默認輸出類型為html,將其設置為josn/xml即可 ![](https://img.kancloud.cn/63/76/6376e3a8e4c8a2789ed2d328516bec59_340x54.png) 如果不想更改配置可直接使用exit函數 ![](https://img.kancloud.cn/31/9e/319ecafb8aceab92208e6cb40b23e246_556x102.png) 使用框架類方法讀取配置文件注意事項(TP5.1) ![](https://img.kancloud.cn/3b/4a/3b4aede39ae6b0f3f08f6de808601a9d_399x128.png) 在TP5.1之前的框架中,使用這樣的方式可以讀取到所以配置項以及值。但是在TP5.1中是無法使用的。正確的使用方法如下: ![](https://img.kancloud.cn/fe/1a/fe1afb77e3cfea917793fa93d9fc5845_459x117.png) TP5.1的配置文件集中放置在與application同級目錄下的config目錄中 ![](https://img.kancloud.cn/8b/ac/8bac2b9950c3f74d45752afa5f0b4782_275x548.png) 這些配置可以在任何位置被使用 如果想要在application\index使用自己配置的數據庫,可在config目錄下創建index\database.php,這樣會覆蓋原來config目錄下的database.php ![](https://img.kancloud.cn/75/55/75553e4afc9f63f32ac4788aa51ea65b_737x425.png) ![](https://img.kancloud.cn/67/ce/67cecb3367d4551c15f3acc7364f10be_553x195.png) 當然這樣的配置只能在application\index目錄下生效 多數據庫的配置: ![](https://img.kancloud.cn/74/fd/74fd00dc765244f8dcdc9c63f30fcce3_429x314.png) 在database.php文件下添加數據庫配置 ![](https://img.kancloud.cn/86/ec/86eca67bf988a05507fa7b1f9076579b_1023x54.png) 讀取app這個配置文件: ![](https://img.kancloud.cn/53/90/539087dc0709779fcdf2a0ea95d194f1_412x120.png) 記得要加點,不然會返回NULL 使用助手函數: ![](https://img.kancloud.cn/ba/aa/baaa80be12c27208b3418130ba642244_336x107.png) 如果只獲取一級配置項,推薦使用pull方法: ![](https://img.kancloud.cn/d5/ef/d5eff4929fec836af59a74281ae1a3fa_372x103.png) 在配置文件中,app是默認的一級配置文件,是什么意思呢? ![](https://img.kancloud.cn/88/f4/88f40f0b45e1e2c701239c8b7cc2d35c_417x126.png) 上面兩種獲取配置文件是一致的 使用助手函數: ![](https://img.kancloud.cn/ed/00/ed00401513c4d9f5346f43bad31f99a7_389x133.png) 查詢配置文件是否存在: ![](https://img.kancloud.cn/ea/fb/eafb5f5b00ecea1600c5b026dd6a2c6a_414x103.png) 使用助手函數: ![](https://img.kancloud.cn/c9/06/c90646d8a3775789cb756099fd14608f_331x107.png) 動態設置配置文件: ![](https://img.kancloud.cn/a2/1b/a21bb1241d1b7126079b697af5004754_388x151.png) 助手函數(助手函數只有一個,可以通過輸入參數的不同實現get、has、set): ![](https://img.kancloud.cn/eb/bf/ebbf094b208069dd27708ed380060267_427x154.png) TP5.1配置文件優先級 application/module_name/config/app.php優先級第一 application/config/app.php優先級第二 application/config/module_name/app.php優先級第三 關于Config下的get方法,我試圖使用,但是百度不到 Thinkphp概念個人理解 參數類型約束 1 對一個參數進行類型約束成一個對象后,他會自動的實例化(Request $request) 單例模式、工廠模式、對象樹 1 單例模式可以理解為手機制作圖紙 2 工廠模式則是可以大批量生產手機的工廠 3 對象注冊樹則是每個手機都要獲得入網許可,每個手機都有自己的IMEI號 Trait類 1 Trait類是為了突破php對繼承的數目限制,實現代碼復用的一種手段 容器、依賴注入 原理: 任何一個URL訪問最終都會訪問到控制器中某一個具體的方法 一個控制器對應著一個類,如何進行統一管理? 容器用于類的管理,還可以將類的實例(對象)作為參數,傳遞給類方法,自動觸發依賴注入 依賴注入:將對象類型的數據,以參數的方式傳送到方法的參數列表 URL訪問:通過GET方式將參數傳送到指定控制器方法中,例如 字符串、數值等 如果要傳一個對象到方法中呢? 依賴注入:解決向類中方法傳入對象 1 容器其實就是對象注冊樹 2 依賴注入這是為了實現將對象作為參數傳入控制器方法 綁定類到容器 1 綁定類到容器,其實就是實例化一個類的過程 閉包 1 如果類是家用筷子,閉包就是一次性的 facade(門面) 1 facade字面意思是門面,作用是靜態代理,讓動態方法能夠靜態調用 2 之前每次require其他類的時候,都需要new一個對象出來,才能調用其方法(創建對象后使用->來調用方法),現在能直接調用(使用::調用) 3 要使用門面技術就需要繼承TP框架的\think\Facede類 4 比較原始的手段是創建一個繼承Facade的類,通過getFacadeClass這個靜態方法來手動綁定一個需要靜態代理的類的命名空間 5 TP框架中提供了動態綁定的函數,即\think\Facade::bind,需要兩個參數,第一個為用來代理的類的命名空間,第二個為需要代理的類的命名空間 絕對路徑和相對路徑 1 \app\index 和 app\index 的含義是不一樣的,前者是絕對路徑,而后者是相對路徑 ThinkPHP5.1控制器較之前版本的區別 1 在TP5.1中控制器不需要繼承 繼承父類可以使用父類中已有的屬性和方法 Controller.php是不可以使用靜態代理的 Request中請求對象的方法: 1.new Request() 2.使用靜態代理 \think\Facede\Request 3.使用依賴注入:\think\Request $request 4.使用父類的屬性 $request $this->request 數據庫連接的方法有三種: 1.全局配置,在config目錄的database.php文件中進行配置 2.動態配置,使用\think\Db::connect([])進行配置,只能在本次使用 3.DSN配置,格式如:數據庫類型://用戶名:密碼@數據庫地址:端口/數據庫名稱#字符集類型(例如:utf8) 再傳入\think\Db::connect()中 數據庫的CURD: 1.插入 單條插入 需要先有一個數組存放數據 Db::insert(data)是普通寫入Db::insert( data)是普通寫入Db::insert(data)是普通寫入Db::insert(data,ture)是使用replace方式寫入,只支持mysql數據庫 Db::insertGetId(data)寫入數據后,返回其id多條插入Db::insertAll( data)寫入數據后,返回其id多條插入Db::insertAll(data)寫入數據后,返回其id多條插入Db::insertAll(data) 2.查詢 單條查詢 需要連貫操作進行 * table():需要輸入完整的數據庫名稱 * where(): 設置查詢條件 表達式 數組 * 單一條件用表達式 * 多個條件用數組 * find():返回符合條件的第一條數據 where中的查詢條件可以寫在find()中 field()用于設置接收的字段和設置別名(別名設置在現版本中好像只支持英文別名) 多條查詢 select() 遍歷時使用foreach可以消掉數據前的下標 3.更新 update() 4.刪除 delete() 原生數據庫操作: 查詢:ELECT id,OwnerId FROM merchant_release_parking_space WHERE id IN (23,24,25) 插入:INSERT merchant_release_parking_space SET OwnerId=11,SpaceAddress=‘華東交通大學停車場’ 更新:UPDATE merchant_release_parking_space SET OwnerId=11 WHERE id=23 刪除:DELETE FROM merchant_release_parking_space WHERE OwnerId=11 AND SpaceAddress=‘華東交通大學停車場’ 模型是用于與一張數據表綁定的 需要繼承think\Model類 在控制器中可以使用模型來代替數據庫連接 例如:Student::等價于Db::table(‘student’),這樣返回的數據為對象類型 模板支持前綴,只需要寫入剩余部分即可 模板返回的數據為對象類型,普通查詢返回的數據非對象,不能進行對象操作 不需要模板直接輸出變量有三種方法: 1.調用父類display方法(需要繼承 \think\Controller) 2.調用父類視圖類實例變量view的display(需要繼承 \think\Controller) 3.使用靜態調用(\think\Facade\View) 4.依賴注入(\think\View $view) 模板輸出: 使用assign將變量傳入 * 傳入變量可以為: * 一個單獨變量 * 多個變量 * 一個數組 * 一個對象 調用assign的方式需要和調用fetch的方式相同,前端才能接收到傳過來的變量 模板布局: 為了簡化網站中某些固定布局,減少重復勞動 在當前模塊中創建view文件夾,創建類似header、footer的html文件,將可能需要重復利用的html拆分到每個html中 需要使用時,通過{include file=’’ /}進行調用 TP框架默認調用為view下 開啟全局模板布局可以讓用戶只關注網站主體部分 需要設置: // 開啟全局模板布局 ‘layout_on’ => false, // 全局模板布局名稱 ‘layout_name’ => ‘layout’ // 模板布局主題部分 ‘layout_item’ => ‘{text}’ 當訪問模板時,優先訪問view下的layout模板文件,其中的{CONTENT}為用戶可編輯替換的主體部分 模板繼承: 相對于模板布局靈活性更好些 通常情況下在view目錄下創建public目錄,放置一些公共文件,其中base.html為公共繼承模板 主體部分改為模塊 {block name=’’}{/block} 當需要繼承模板時 {extend name=’’ /} 使用標簽{block name=’’}{/block}對父類模塊進行重寫 如果需要顯示原父類標簽中內容 {block} 驗證器驗證分為兩種: 1.驗證器驗證 2.獨立驗證 二者區別:獨立驗證不依賴用戶自定義的驗證器類 驗證器:新建驗證類,繼承框架validate類,重寫$rule變量 調用方式有三種: 1.調用自定義驗證器類進行驗證 2.調用系統定義驗證器類進行驗證(需要先綁定門面和自定義規則類) 3.調用Controller類中validate函數,第一個參數為驗證信息,第二個參數為驗證規則類(即自定義驗證器)(控制器驗證) 在用戶自定義驗證器類的時候,unique參數用于驗證輸入信息在指定表中是否唯一 confirm參數用于密碼驗證 TP框架錯誤信息的輸出不但可以在HTML中顯示,也可以切換成控制臺顯示,在config目錄下的trace.php中進行設置 在標準html頁面中,使用link標簽引用css樣式,使用script引用js文件,在TP5.1框架中可以使用{load href=""}來引用這兩種文件
                  <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>

                              哎呀哎呀视频在线观看