概述


在开发中扩展Yii是一个很常见的行为.例如,当你写一个新的控制器时,你通过继承 [CController] 类扩展了 Yii;当你编写一个新的组件时,你正在继承 [CWidget] 或者一个已存在的组件类.如果扩展代码是由第三方开发者为了复用而设计的,我们则称之为 extension(扩展).

一个扩展通常是为了一个单一的目的服务的.在 Yii 中,他可以按照如下分类:

  • 应用的部件
  • 组件
  • 控制器
  • 动作
  • 过滤器
  • 控制台命令
  • 校验器: 校验器是一个继承自 [CValidator] 类的部件.
  • 辅助器: 辅助器是一个只具有静态方法的类.它类似于使用类名作为命名空间的全局函数.
  • 模块: 模块是一个有着若干个类文件和相应特长文件的包.一个模块通常更高级,比一个单一的部件具备更先进的功能.例如我们可以拥有一个具备整套用户管理功能的模块.

扩展也可以是不属于上述分类中的任何一个的部件.事实上,Yii 是设计的很谨慎,以至于几乎它的每段代码都可以被扩展和订制以适用于特定需求.