关于组件

看到手册里面关于“组件”的介绍,看得是云里雾里,哪位朋友能讲解一下“组件”究竟能做什么? 在什么情况下使用?

是指widget吗?

看blog demo里面有例子。

最好不要看中文的那个,直接看英文的

我看中文的guide也没看懂,英文的好理解

组件就是一个类文件,没什么具体的含义。你功能相关的代码组织在一起,就是一个类。

yii中好多组件,chtml,user,你看看yii有内置(即自带的)组件。

如果你想建立自己的组件,就要按yii的要求进行扩展。

组件是用来扩充application或网站的功能的,比如你想建立一个查询房价的功能,就可以做成一个组件,然后在配置文件中加载就可以用了。如果你的功能很庞大的话,就可将组件变成模块(module),从某个程度说,module就是一个大组件而已,当然module有自己的组件、视图等。

有了组件,你可为组件添加行为behavior,行为是用来扩展组件的功能的,组件是用来扩展应用的功能的,模块是一组功能体系或者二级域名对应的功能。

总之,模块 组件 行为,就是不同等级的功能分类。你要按yii要求做。

以上是我的理解,纯粹是自我的非专业理解,呵呵。

2011第一贴哦!祝yii越来越好!

赞,手册确实看不懂。还是Junior Member说的通俗易懂!

在yii中组件就是所有类的根 如果你学过QT的话应该知道有个QObject 那么在yii中这个类就是CComponet(或者认为是YiiObject) 是“根”类型,看看CComponent的源码 和继承关系就明白了

这个根 主要提供了 事件机制的实现(观察者设计模式) 和behavior功能的支持(mixin功能的实现 多继承的模拟;behavior在yii中的另一个功能是事件监听功能主要监听owner的事件 ),另外就是对__set

__get 等魔术方法的实现 让我们可以以$yiiObject->attr 的形式来调用对应的Setter/Getter setAtrr()/getAttr() 方法

这个类为所有子类提供共有功能的实现 这使得所有类都具有事件触发 behavior安装/禁用/卸载的功能 以及setter/getter(统称为accessor)

所以说Yii是基于组件的 你要明白这句话的含义

值得一提的是 在Joomla中 有这样的关系跟yii中的类对应

  Joomla(   component  , module)

对应 Yii ( module , widget) module在系统中的地位就想当于subSystem(子系统的概念)

http://www.yiiframework.com/forum/index.php?/topic/17072-ccomponent基础类/

CComponent基础类