我已经编写了位于/protected/components/document.php
class Document extends CComponent{
private $_width;
public __construct($width){
this->_width=$width;
}
public function getWidth(){
return $this->_width;
}
}
现在我尝试在我的控制器操作之一中使用此组件,如下所示:
$docum=new Document('150');
echo $docum->width;
但引发了以下异常:
include(Document.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory
如何解决这个问题?
答案 0 :(得分:3)
首先,您应该将文件从document.php
重命名为Document.php
。其次,如果您想通过new
创建其实例,则不应将其从CComponent
类扩展。
要使用组件而不通过new
创建组件,您应该
在组件部分的config.php中配置它:
&#39;文件&#39; =&GT;阵列( &#39;类&#39; =&GT; &#39;文件&#39 ;, //其他属性 ),
将其用作Yii :: app() - &gt; document-&gt; method();
此外,如果您从CApplicationComponent扩展您的类,则不应定义__construct方法,而是应在重写的init()
方法中进行所有初始化。
答案 1 :(得分:-1)
基本上缺少导入文件:
Yii::import('application.components.Document');