Yii Framework v1.1.10 绫诲弬鑰

CViewRenderer

system.web.renderers
缁ф壙 abstract class CViewRenderer » CApplicationComponent » CComponent
瀹炵幇 IApplicationComponent, IViewRenderer
瀛愮被 CPradoViewRenderer
婧愯嚜 1.0
鐗堟湰 $Id: CViewRenderer.php 3515 2011-12-28 12:29:24Z mdomba $
婧愮爜 framework/web/renderers/CViewRenderer.php
CViewRenderer 鏄鍥炬覆鏌撶被鐨勫熀绫汇

涓涓鍥炬槸涓涓簲鐢ㄧ▼搴忕粍浠讹紝 瀹冩覆鏌撶敤鑷畾涔夎娉曞啓鐨勮鍥俱

涓鏃﹀畨瑁呬竴涓悕涓簐iewRenderer鐨勮鍥炬覆鏌撶粍浠讹紝 姝e父鐨勮鍥炬覆鏌撹繃绋嬪皢浼氳鎵撴柇銆 娓叉煋鍣ㄥ皢棣栧厛瑙f瀽婧愯鍥炬枃浠 鐒跺悗娓叉煋瑙嗗浘鏂囦欢銆

瑙f瀽缁撴灉琚繚瀛樹负涓存椂鏂囦欢 瀹冨彲鑳藉瓨鍌ㄥ湪runtime鐩綍鎴栧拰婧愯鍥炬枃浠剁浉鍚岀殑鐩綍銆

鍏叡灞炴

闅愯棌缁ф壙灞炴

灞炴绫诲瀷鎻忚堪瀹氫箟鍦
behaviors array 杩欎釜搴旂敤缁勪欢闄勫姞鐨勮涓恒 杩欐琛屼负灏嗗湪搴旂敤缁勪欢璋冪敤init鏃堕檮鍔犲湪搴旂敤缁勪欢涓娿 璇峰弬鐓CModel::behaviors濡備綍鎸囧畾姝ゅ睘鎬у笺 CApplicationComponent
fileExtension string 瑙嗗浘鏂囦欢鐨勬墿灞曞悕. CViewRenderer
filePermission integer 瑙f瀽鍚庣敓鎴愮殑涓存椂鐩綍鍜屼复鏃舵枃浠剁殑鏉冮檺銆 榛樿涓0755 (owner rwx, group rx and others rx). CViewRenderer
isInitialized boolean 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 CApplicationComponent
useRuntimePath boolean 鏄惁灏嗚В鏋愮殑缁撴灉淇濆瓨鍦ㄥ簲鐢ㄧ▼搴忕殑runtime鐩綍銆 榛樿涓簍rue銆 濡傛灉璁剧疆涓篺alse锛岃В鏋愮粨鏋滃皢浠ユ枃浠跺舰寮忎繚瀛樺湪鍜屾簮瑙嗗浘鏂囦欢鐩稿悓鐨勭洰褰曚笅 鏂囦欢鍚嶅皢浼氭槸婧愯鍥炬枃浠跺悕鍔犱笂瀛楁瘝c銆 CViewRenderer

鍏叡鏂规硶

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
__call() 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 CComponent
__get() 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 CComponent
__isset() 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 CComponent
__set() 璁剧疆涓涓粍浠剁殑灞炴у笺 CComponent
__unset() 璁剧疆涓涓粍浠剁殑灞炴т负null銆 CComponent
asa() 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° CComponent
attachBehavior() 闄勫姞涓涓涓哄埌缁勪欢銆 CComponent
attachBehaviors() 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 CComponent
attachEventHandler() 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 CComponent
canGetProperty() 纭畾灞炴ф槸鍚﹀彲璇汇 CComponent
canSetProperty() 纭畾灞炴ф槸鍚﹀彲鍐欍 CComponent
detachBehavior() 浠庣粍浠朵腑鍒嗙涓涓涓恒 CComponent
detachBehaviors() 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 CComponent
detachEventHandler() 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 CComponent
disableBehavior() 绂佺敤涓涓檮鍔犺涓恒 CComponent
disableBehaviors() 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
enableBehavior() 鍚敤涓涓檮鍔犺涓恒 CComponent
enableBehaviors() 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 CComponent
evaluateExpression() 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 CComponent
getEventHandlers() 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 CComponent
getIsInitialized() 妫鏌ュ簲鐢ㄧ粍浠舵槸鍚﹀凡缁忓垵濮嬪寲銆 CApplicationComponent
hasEvent() 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 CComponent
hasEventHandler() 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 CComponent
hasProperty() 纭畾灞炴ф槸鍚﹁瀹氫箟銆 CComponent
init() 鍒濆鍖栧簲鐢ㄧ粍浠躲 CApplicationComponent
raiseEvent() 鍙戣捣涓涓簨浠躲 CComponent
renderFile() 娓叉煋涓涓鍥炬枃浠躲 CViewRenderer

鍙椾繚鎶ゆ柟娉

闅愯棌缁ф壙鏂规硶

鏂规硶鎻忚堪瀹氫箟鍦
generateViewFile() 瑙f瀽婧愯鍥炬枃浠讹紝淇濆瓨缁撴灉鍒板彟涓涓枃浠躲 CViewRenderer
getViewFile() 鐢熸垚缁撴灉瑙嗗浘鏂囦欢鐨勮矾寰勩 CViewRenderer

灞炴ц缁

fileExtension 灞炴
public string $fileExtension;

瑙嗗浘鏂囦欢鐨勬墿灞曞悕. 榛樿涓'.php'.

filePermission 灞炴
public integer $filePermission;

瑙f瀽鍚庣敓鎴愮殑涓存椂鐩綍鍜屼复鏃舵枃浠剁殑鏉冮檺銆 榛樿涓0755 (owner rwx, group rx and others rx).

useRuntimePath 灞炴
public boolean $useRuntimePath;

鏄惁灏嗚В鏋愮殑缁撴灉淇濆瓨鍦ㄥ簲鐢ㄧ▼搴忕殑runtime鐩綍銆 榛樿涓簍rue銆 濡傛灉璁剧疆涓篺alse锛岃В鏋愮粨鏋滃皢浠ユ枃浠跺舰寮忎繚瀛樺湪鍜屾簮瑙嗗浘鏂囦欢鐩稿悓鐨勭洰褰曚笅 鏂囦欢鍚嶅皢浼氭槸婧愯鍥炬枃浠跺悕鍔犱笂瀛楁瘝c銆

鏂规硶璇︾粏

generateViewFile() 鏂规硶
abstract protected void generateViewFile(string $sourceFile, string $viewFile)
$sourceFile string 婧愯鍥炬枃浠惰矾寰
$viewFile string 浣滀负缁撴灉鐨勮鍥炬枃浠惰矾寰
婧愮爜锛 framework/web/renderers/CViewRenderer.php#55 (鏄剧ず)
abstract protected function generateViewFile($sourceFile,$viewFile);

瑙f瀽婧愯鍥炬枃浠讹紝淇濆瓨缁撴灉鍒板彟涓涓枃浠躲

getViewFile() 鏂规硶
protected string getViewFile(string $file)
$file string 婧愯鍥炬枃浠惰矾寰
{return} string 缁撴灉瑙嗗浘鏂囦欢璺緞
婧愮爜锛 framework/web/renderers/CViewRenderer.php#84 (鏄剧ず)
protected function getViewFile($file)
{
    if(
$this->useRuntimePath)
    {
        
$crc=sprintf('%x'crc32(get_class($this).Yii::getVersion().dirname($file)));
        
$viewFile=Yii::app()->getRuntimePath().DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.$crc.DIRECTORY_SEPARATOR.basename($file);
        if(!
is_file($viewFile))
            @
mkdir(dirname($viewFile),$this->filePermission,true);
        return 
$viewFile;
    }
    else
        return 
$file.'c';
}

鐢熸垚缁撴灉瑙嗗浘鏂囦欢鐨勮矾寰勩

renderFile() 鏂规硶
public mixed renderFile(CBaseController $context, string $sourceFile, mixed $data, boolean $return)
$context CBaseController 娓叉煋瑙嗗浘鏂囦欢controller鎴杦idget銆
$sourceFile string 瑙嗗浘鏂囦欢璺緞
$data mixed 瑕佷紶鍒拌鍥句腑鐨勬暟鎹
$return boolean 鏄惁灏嗘覆鏌撶粨鏋滆繑鍥
{return} mixed 杩斿洖娓叉煋缁撴灉锛屾垨鑰呭綋涓嶉渶瑕佹覆鏌撶粨鏋滄椂杩斿洖null銆
婧愮爜锛 framework/web/renderers/CViewRenderer.php#66 (鏄剧ず)
public function renderFile($context,$sourceFile,$data,$return)
{
    if(!
is_file($sourceFile) || ($file=realpath($sourceFile))===false)
        throw new 
CException(Yii::t('yii','View file "{file}" does not exist.',array('{file}'=>$sourceFile)));
    
$viewFile=$this->getViewFile($sourceFile);
    if(@
filemtime($sourceFile)>@filemtime($viewFile))
    {
        
$this->generateViewFile($sourceFile,$viewFile);
        @
chmod($viewFile,$this->filePermission);
    }
    return 
$context->renderInternal($viewFile,$data,$return);
}

娓叉煋涓涓鍥炬枃浠躲 杩欎釜鏂规硶鏄 IViewRenderer 鎵蹇呴』鐨勩

Copyright © 2008-2011 by Yii Software LLC
All Rights Reserved.