我需要覆盖一些 yii 核心文件——特别是 CGridColumn.php 和 CController.php。我需要确保在我的应用程序中引用这些类,而不是它们覆盖或扩展的核心文件。我该怎么做呢?它必须非常简单,但我似乎找不到记录在案的“正确”方法来做到这一点。
问问题
3011 次
2 回答
5
如果要扩展基本控制器:
在受保护的/组件目录中创建 Controller.php:
class Controller extends CController { public $newProperty; public function newMethod() { ... } }
确保在配置中导入 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 数组中使用它
'columns' => array(
array(
'class' => 'TestColumn',
),
),
于 2012-06-29T05:03:57.350 回答
2
扩展通用类以允许更好的定制
http://www.yiiframework.com/wiki/121/extending-common-classes-to-allow-better-customization/
于 2012-06-29T09:33:33.943 回答