我需要覆盖一些yii核心文件 - 特别是CGridColumn.php和CController.php。我需要确保在我的应用程序中引用这些类,而不是它们覆盖或扩展的核心文件。我该怎么做呢?它必须非常简单,但我似乎无法找到记录在案的“正确”方法。
答案 0 :(得分:5)
如果要扩展基本控制器:
在protected / components目录中创建Controller.php:
class Controller extends CController
{
public $newProperty;
public function newMethod()
{
...
}
}
确保在config:
中导入Controller.php'import' => array(
...
'application.components.Controller',
...
),
从Controller扩展控制器,而不是CController:
class ExampleController extends Controller {
...
}
如果你想扩展CGridColumn,1和2步是相同的,但在你的自定义类中不要忘记导入原始类:
Yii::import('zii.widgets.grid.CGridColumn');
class TestColumn extends CGridColumn
{
...
}
然后在CGridView
的列数组中使用它 'columns' => array(
array(
'class' => 'TestColumn',
),
),
答案 1 :(得分:2)