2012-06-28 82 views
1

我需要重寫一些yii核心文件 - 特別是CGridColumn.php和CController.php。我需要確保在我的應用程序中引用這些類,而不是它們覆蓋或擴展的核心文件。我該怎麼做呢?這很簡單,但我似乎無法找到一個記錄「正確」的方式來做到這一點。Yii - 如何覆蓋/擴展核心文件

回答

5

如果你想擴展主控制器:

  1. 在你的保護/組件目錄中創建Controller.php這樣:

    class Controller extends CController 
        { 
        public $newProperty; 
    
        public function newMethod() 
        { 
        ... 
        } 
    } 
    
  2. 確保Controller.php這樣被導入到config:

    'import' => array(
        ... 
        'application.components.Controller', 
        ... 
    ), 
    
  3. 從控制器擴展您的控制器,而不是CCo ntroller:

    class ExampleController extends Controller { 
        ... 
    } 
    

如果你想擴展CGridColumn,步驟1和2是相同的,但在你的自定義類不要忘了進口原裝類:

Yii::import('zii.widgets.grid.CGridColumn'); 

    class TestColumn extends CGridColumn 
    { 
     ... 
    } 

然後只是用它在列陣列CGridView的

'columns' => array(
     array(
      'class' => 'TestColumn', 
     ), 
    ), 
+0

有allredy具有良好的本條款關於這一主題 –

+0

感謝Choo的,我想通了儘可能多的我有一些飯後,但這肯定會有所幫助。謝謝你的記錄如此乾淨:) – siliconrockstar