原文地址:http://blog.csdn.net/self_realian/article/details/75214922php
模板變量輸出、替換和賦值css
咱們看一下文件編譯的結果,咱們知道咱們如今寫的是一個html文件,可是咱們當前的系統是php,咱們的模板最終也會編譯成php文件執行,輸出咱們想要的結果,它編譯的文件在runtime/temp目錄下,找到對應的編譯文件html
首先咱們看見,若是咱們在系統中沒有定義「THINK_PATH」這個變量,就會退出,說明咱們當前這個文件必須在ThinkPHP環境下才能執行,這樣它就不呢直接訪問咱們的temp文件,來獲取咱們文件中的內容,上邊的那個其實就是一個安全機制。緊接着就是咱們編寫的代碼了。咱們會看到 它把包裹變量的兩個花括號變成了<?php 和 ?>.也就是說咱們在模板中輸出變量的花括號最終會被編譯成PHP的<?php 和 ?>,而後裏邊是echo 出變量,這就是模板的執行流程。它首先讓咱們在html文件中編寫正常的html,經過固定的標籤來標記咱們變量的開始和結束,以後在咱們執行過程當中,它會生成緩存或編譯文件,最終咱們程序實際上是執行了那個編譯文件。如今咱們看一下,爲何咱們使用花括號就能輸出變量,可否使用其它的標記呢?前端
咱們來看一下thinkphp的配置文件(convention.php),找到模板配置部分,直接拷貝到應用配置文件中thinkphp
這兩個就是定義模板的開始和結束的標記的,固然咱們也能夠改,可是不建議改,若是小夥伴們想試一下也是能夠的,我這裏就不截圖了。(注意咱們輸出的變量和花括號中間是不能有空格的,不然不能正常輸出變量的值)緩存
接下來咱們看看,還能使用哪些方式能對頁面的變量賦值。咱們知道咱們能夠經過fetch()的第二個參數賦值。第二種方式,以前也介紹過,能夠經過$this->assign()的方法。第三種方法,是經過$this->view獲取view對象,而後給view對象設置屬性值,好比:$this->view->name =‘chen’安全
在ThibPHP5.0.4以後,在think下的view類中,爲咱們提供了一個靜態方法,咱們能夠直接經過靜態方法,來對咱們的頁面賦值框架
這幾種給模板中分配變量的方式,同時可用。系統會將這四種方式傳遞的變量進行合併,統一貫咱們的頁面中進行分配,這樣咱們就能夠在咱們的頁面中使用這些值函數
咱們知道,經過fetch()函數,咱們能夠傳遞第三個參數,第三個參數的key就是咱們要替換的字符串,值就是咱們替換以後把的內容fetch
另外,咱們能夠經過修改配置文件中,進行修改,來統一的向咱們全部的模板中進行一個變量替換的配置,咱們依然打開convention.php
另外,咱們能夠經過修改配置文件中,進行修改,來統一的向咱們全部的模板中進行一個變量替換的配置,咱們依然打開convention.php
將它複製到應用配置文件中,而後進行修改
好比我想將 ‘__123__’修改爲‘__一二三__’
能夠這樣配置
而後咱們能夠回到模板中直接進行輸出
系統還提供了一些默認的字符串替換,好比__URL__(獲得的是當前模塊名和當前控制器名)、__STATIC__(獲得的是/static也就是根下的static目錄即public/static目錄),thinkphp是一個單入口文件,全部的請求都會落到public/index.php,在咱們安裝好這個框架以後,public就會默認有一個static目錄,咱們以前介紹目錄的時候介紹過,這個static目錄是用來放靜態文件的。咱們在模板中常常會使用到static下的一些文件,好比說:css樣式,js代碼,圖片等。咱們就能夠經過__STATIC__來代替/static目錄。還有__JS__,它表示的是/static/js這個目錄。__ROOT__,它表示的是框架所在的目錄下的public目錄,在我這裏是/ThinkPHP5.0/public。__CSS__它表示的是/static/css目錄
好比咱們如今想使index.html這個頁面變成紅色,咱們再static/css目錄下寫一個style.css文件,而後在index.html中引入該樣式
當咱們使用__CSS__這種系統定義好的常量,會給咱們提供很大的方便。好比說咱們不想將咱們的樣式放在public/static目錄,咱們只想直接放在根目錄,也就是public目錄下,好比說建立一個front目錄,裏邊全放前端的樣式。當咱們修改了樣式的位置以後,若是咱們使用的是以前的那種傳統的引入樣式的方法,咱們就須要修改咱們整個項目的樣式的路徑,可是咱們使用了__CSS__這種以後,咱們只須要在咱們的當前模塊配置文件中進行修改便可,好比咱們如今修改__CSS__默認對應的目錄
這樣咱們在模板中使用__CSS__對應的就是/front/css目錄。經過簡單的配置就能改變項目中全部樣式相關的路徑,這對咱們後期的維護是至關方便的。這些默認的替換在thinkphp/library/think/View.php
注意配置的讀取順序,也就是優先級。最早讀取的是框架的默認配置,若是咱們在對應的模塊中對這些配置進行了修改,那麼它最終會使用模塊中的配置