扩展 CController

在 YII 中控制器是直接从 CController 继承,这样的话如果我要扩展的话只能是做类似于以下的动作。


<?php

class BaseController extends CController {

	public function init() {

		......

	}

}

?>



然后其他的类在从 BaseController 继承。为什么不在使用 yiic 创建程序骨架的时候直接生成 BaseController 文件,控制器的话全部默认从 BaseController 继承。免得在后续要扩展的时候修改控制器内容。

=====================

刚开始看 YII,不知道问得对不对哈。呵呵。

我想yii主要考虑的效率问题吧~ 而且生成项目的文件也会少一些:)

需要自定义的,自己弄个文件继承一下。

命令行也只是方便了大家的一些使用, 毕竟不是万能的. 即使生成的所有文件, 可能你都需要调整. 如果是万能的, 咱做开发的就要失业了.呵呵

没有自定义controller基类主要是考虑到大家的编程习惯不一样。我个人的习惯是有自己的基类,包括Controller, ActiveRecord。这样基类定义的新功能就可以被共享了。

另外,强烈推荐这篇文章:http://www.yiiframework.com/doc/cookbook/41/

它可以帮你改造yiic的代码生成器,使得生成的代码完全符合自己的喜好。

我也使用继承了Yii的基类作为自己基类的方法,这样有助于做一些通用的控制器的操作… :lol: