如何在 web-app 中使用 Yii 组件?
Posted
技术标签:
【中文标题】如何在 web-app 中使用 Yii 组件?【英文标题】:How to use Yii components in the web-app? 【发布时间】:2014-05-27 07:38:58 【问题描述】:我编写了位于/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
如何解决这个问题?
【问题讨论】:
【参考方案1】:首先,您应该将文件从 document.php
重命名为 Document.php
。其次,如果你想通过new
创建它的实例,你不应该从CComponent
类扩展它。
要使用组件而不通过new
创建它,您应该
-
从 CApplicationComponent 扩展您的类。
在 config.php 的 components 部分进行配置:
'文档' => 数组( '类' => '文档', // 其他属性 ),
将其用作 Yii::app()->document->method();
另外,如果你从 CApplicationComponent 扩展你的类,你不应该定义 __construct 方法,而是所有初始化都应该发生在被覆盖的 init()
方法中。
【讨论】:
感谢您的回答。但我不明白你。我如何在我的应用程序中使用组件而不使用新组件?我已经阅读了yiiframework.com/doc/guide/1.1/en/basics.component,但没有关于将组件类嵌入到应用程序中的信息。【参考方案2】:基本上它缺少导入文件:
Yii::import('application.components.Document');
【讨论】:
以上是关于如何在 web-app 中使用 Yii 组件?的主要内容,如果未能解决你的问题,请参考以下文章
php yii - 如何从 yii 图像组件获取图像宽度和高度属性 [关闭]