如何从主配置传递扩展 class 的额外参数?

How to pass extra parameters on extension's class from main config?

我有一个第三方 class(在 extension/MYClass 文件夹中),它的构造函数需要两个必要参数。

class MyClass {
   function __construct($param1, $param2, $param3 = false) {
    $this->param1 = $param1;
    $this->param2 = $param2;
    $this->param3 = $param3;
  }
  public static function send(){
    ---------
    ---------
  }
}

当我像这样通过主配置文件访问 class 时。那么我应该如何在 class 上传递这些参数?

'components'=>array(
        'myclass' => array(
                    'class' => 'ext.MyClass.MyClass',
            ),
),

这样我就可以方便的访问像Yii::app()->myclass->send();

这样的功能

首先你应该让 MyClass 扩展 CApplicationComponent 如果你还没有这样做的话。

那么只需向配置提供 key => value 对参数即可。

'components'=>array(
        'myclass' => array(
                    'class' => 'ext.MyClass.MyClass',
                    'myParam' => 'test'
            ),
),

并正确设置 class。

   class MyClass extends CApplicationComponent {
      public $myParam
      public function send(){
         echo $this->myParam;
      }
    }

以上将为调用 Yii::app()->myclass->send()

回显 test