我目前正在学习 yii 框架并阅读了他们的文档。

但我仍然不明白这些组件。这些是什么。他们谈论组件事件和行为。

有人可以为我解释这些术语,并为我提供有关组件、其事件和行为的真实应用程序示例吗?

会有帮助的!

有帮助吗?

解决方案

CComponent 本身并没有太多作用。它非常类似于 Qt 中的 QObject。CComponent 可以引发事件,并且可以委托事件(通过 AttachEventHandler())。

关于行为,手册说:

行为的方法可以像属于组件一样调用。多种行为可以附加到同一组件上。

要将行为附加到组件上,请致电arterabehavior;为了使行为与组件分离,请致电Dicachbehavior。

通过分别调用启用行为或禁用行为,可以暂时启用或禁用行为。禁用时,不能通过组件调用行为方法。

从版本1.1.0开始,可以通过附加到其附加的组件访问行为属性(其公共成员变量或通过getters和/或setter定义的属性)。

这使您可以模拟 信号和槽 机制,或 策略模式 (通过启用或禁用行为)。

Yii 中的大多数类都以 CComponent 作为基类。

作为用户,当您创建自己的组件(在 protected/components/ 下)时,您将看到它们通过上述机制提供的好处。

您可以在这里找到实现组件的良好起点: http://www.yiiframework.com/doc/guide/basics.component

其他提示

在Yii中,一个应用程序的作品通过不同的对象的相互作用,这些对象可以被简单地认为是“部件”或应用程序的“积木”。 A组分仅仅是已写入到执行或促进在Yii应用特定任务的对象。如果你看一下“一个Yii应用的典型工作流程”上 [http://www.yiiframework.com/doc/guide/1.1/en/basics.mvc] [1]

,你会认识到,除了图和布局(其被认为是脚本)和的index.php,一切与他人相互作用是一个组件。在运行应用程序时,他们都执行不同的任务。

几乎所有在Yii是一个部件(或从CComponent类派生)。

更具体地,

  

CComponent器具限定,使用属性和事件的协议“。

<强>事件:事件允许你当一些特定的组件内发生执行的动作的序列(一个以上的)。你定义一个事件并附加了一些功能(行动),以该事件。现在,只要该事件是在组件内上升,附着于该事件的所有功能被执行。按照我的理解,这些是有点类似于钩在WordPress的概念。

事件中组件的特定应用被Yii定义

  

当要中断正常应用流而不延伸基类是有用的。

行为:行为仅仅是为您提供多重继承,同时废除了多重继承的多种功能相同的名称问题未通过PHP5支持的Yii的方式。如果你想从A类和B继承属性和方法扩展类A,然后再连接B类作为它的行为,那么你可以使用B类的所有方法为好。现在,如果A和B都包含一个名为函数“usefulfunction()”,这个函数的所有调用将导致从只有A类“usefulfunction”的执行。如果这两个类A和B作为行为加入到类,那么将导致从其中第一附接的行为的方法的执行的“usefulfunction”呼叫。

P.S。 (我不是专家,所以请纠正我,如果我错了,任何地方。)

也许在他们的维基此额外的页面可以提供更深入的了解: http://www.yiiframework.com/wiki/44/behaviors-events/

scroll top