Php 谁被称为组件';s init()方法?
我只是Yii框架的新手,我正在试验Yii组件。我有一个简单的测试组件:Php 谁被称为组件';s init()方法?,php,yii,components,Php,Yii,Components,我只是Yii框架的新手,我正在试验Yii组件。我有一个简单的测试组件: class document extends CApplicationComponent{ private $_width='150'; public function init(){ echo "This is document component init method."; } public function getWidth(){
class document extends CApplicationComponent{
private $_width='150';
public function init(){
echo "This is document component init method.";
}
public function getWidth(){
return $this->_width;
}
}
如果我在代码中使用此组件,如下所示:
Yii::import('application.components.document');
$width=Yii::app()->document->width;
然后调用组件的init()
方法。这种方法叫谁?您是否可以从调用此方法的Yii源代码中的行中获取引用。来自capApplicationComponent
实现的API页面
应用程序完成配置后,将调用每个加载的应用程序组件的init()
方法
在深入挖掘之后,这是的源代码。CModule是所有模块和应用程序类的基类,因此基本应用程序类将调用\u init
elseif($component instanceof IApplicationComponent)
{
$this->_components[$id]=$component;
if(!$component->getIsInitialized())
$component->init(); // <----
return;
}
elseif($iaapplicationComponent的组件实例)
{
$this->_components[$id]=$component;
如果(!$component->getIsInitialized())
$component->init()//