components与extensions等的区别

本人基础薄弱,近日遇到一个概念问题,当使用yii创建一个组件时,应该怎样对这个这个组件进行分类呢。什么时候应该归为components,什么时候是extensions,如何阐述他们的概念?想了解一下yii整个架构概念,谢谢各位赐教。

components 直译为“组件”,config文件中一次性将components中的类import到app中,调用时直接写类名就可以。而不需要单独import。可以理解为网站必须的代码。




	// autoloading model and component classes

	'import'=>array(

		'application.models.*',

		'application.components.*', 

	),



extensions 直译为“扩展”,扩展主要包括一些第三方插件等。只有网站在特定部分才加载,比如编辑器等。

module 直译为“模块”,在app中嵌入一个子app。gii就是一个典型的module.

thanks,照这样说,如果components加载得太多,应该会影响网站速度吧?

在main.php中配置的component过多,影响几乎忽略不计

因为只有在你用到的时候才根据component_config加载component类文件,生成component对象

具体的component加载创建流程可以看看CModule里面的getComponent方法

用到需要的component类的时候才会加载,不会影响速度!