模板用include引入是非常靈活的一種佈局方案。
但是由於官方教學說的不是太清楚,常常造成誤解。所以來說兩句話:
1.首先include引入的模板和action對應的模板之間的區別。
這是最容易混淆的。 action對應的模板是和action綁定的。
而include模板和action麼有任何關係!
include模板只是一段html,可以放在任何地方。它的參數不會經過定義它的那個action的解析,而是用它的那個action才會影響它的解析。
如果你用過js的模板就很好理解。
混淆的地方是include可以用控制器/方法的模式引用,這個意思只是說action控制器的view也可以當作模板來使用。但使用的只是view中的html程式碼而已。 action當中的程式碼是不會被執行的!
2.include的資料來源。
include的資料來源不是action,而是在include標籤中傳入的,例如官方教學的例子:
<include file="Public/header" title="ThinkPHP框架" keywords="开源 WEB开发框架" />
這裡title和keywords是兩個變數傳遞到include模板中了,這兩個變數可不是action提供的啊。
結論:
include模板是獨立的,可以再任何地方呼叫。具有接收參數的功能。
牢記;誰用誰傳參!
把action的view當作include模板只是方便使用現成的html而已。當action對應的view作為include模板引入的時候,它已經異化成了獨立的html片段,和action沒有任何關係了。所以官方的說法:
注意,包含模版檔案並不會自動呼叫控制器的方法,也就是說包含的其他模版檔案中的變數賦值需要在目前操作中完成。
include中如果包含變量,來源也是目前使用這個include的action,而不是那個作為view來源的action!那個action是不會被執行的!現在你可以理解了吧。
所以,理解include模板的關鍵就是它是許多可以重複使用的html片段的組織方式。至於這些片段是獨立存在的html還是action中的view都無所謂。
至於本人的做法,則是放到放置css,img,js的那個public資料夾下面。加上一個htmltpl的資料夾,引用的時候
<include file="./Public/htmltpl/abc.html" />
淺顯的理解,不知道說明白了沒有。
以上是thinkphp中關於include的正確理解與用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增強codemodocultion,可驗證性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

選擇DependencyInjection(DI)用於大型應用,ServiceLocator適合小型項目或原型。 1)DI通過構造函數注入依賴,提高代碼的測試性和模塊化。 2)ServiceLocator通過中心註冊獲取服務,方便但可能導致代碼耦合度增加。

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)啟用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替換loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

phpemailvalidation invoLvesthreesteps:1)格式化進行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

tomakephpapplicationsfaster,關注台詞:1)useopcodeCachingLikeLikeLikeLikeLikePachetoStorePreciledScompiledScriptbyTecode.2)MinimimiedAtabaseSqueriSegrieSqueriSegeriSybysequeryCachingandeffeftExting.3)Leveragephp7 leveragephp7 leveragephp7 leveragephpphp7功能forbettercodeefficy.4)

到ImprovephPapplicationspeed,關注台詞:1)啟用opcodeCachingwithapCutoredUcescriptexecutiontime.2)實現databasequerycachingingusingpdotominiminimizedatabasehits.3)usehttp/2tomultiplexrequlexrequestsandreduceconnection.4 limitesclection.4.4

依赖注入(DI)通过显式传递依赖关系,显著提升了PHP代码的可测试性。1)DI解耦类与具体实现,使测试和维护更灵活。2)三种类型中,构造函数注入明确表达依赖,保持状态一致。3)使用DI容器管理复杂依赖,提升代码质量和开发效率。

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境