Php 加载自定义Yii组件

Php 加载自定义Yii组件,php,yii,swiftmailer,Php,Yii,Swiftmailer,我正在尝试使用我创建的自定义类来发送邮件,这样我就可以保持控制器文件的精简。我创建了自定义类并将其放入components文件夹中。我接着补充说: 'sendMail' => array( 'class'=>'application.components.SendMail.', ), 在我的主配置文件的主要组件下面 这应该允许我直接访问类正确吗?我尝试使用: Yii::app()->SendMail->MailerConfirmation(); 以及: 我最

我正在尝试使用我创建的自定义类来发送邮件,这样我就可以保持控制器文件的精简。我创建了自定义类并将其放入components文件夹中。我接着补充说:

'sendMail' => array(
    'class'=>'application.components.SendMail.',
), 
在我的主配置文件的主要组件下面

这应该允许我直接访问类正确吗?我尝试使用:

Yii::app()->SendMail->MailerConfirmation();
以及:

我最后只会犯错误

谁能告诉我如何包含自定义组件?也许我做错了?

首先应该是:

'sendMail' => array(
    'class'=>'application.components.SendMail',
), 
请注意,在“SendMail”而不是“SendMail”的末尾没有点。此外,此配置要求您在protected/components目录中拥有php文件SendMail.php,该目录是一个名为“SendMail”的类,并且该组件扩展了CapApplicationComponent。组件id的首字母较低,例如
Yii::app()->sendMail
,这将返回“sendMail”类的实例。我不知道MailerConfirmation是什么,但是如果这是SendMail对象的一种方法,那么您应该像
Yii::app()->SendMail->MailerConfirmation()那样访问它


如果这没有帮助,请发布一些代码并发布您收到的错误。

请注意,如果您不打算在配置文件中设置任何组件属性或使用其他CapApplicationComponent功能,并且您的配置文件包含默认值:

'import'=>array(
    'application.models.*',
    'application.components.*',
),
您可以将SendMail.php类放在components目录中,通过以下方式调用它,它将自动加载:

$mailer = new SendMail();
然后通过以下方式调用您的方法:

$mailer->MailerConfirmation();
如果您确实想使用,您可能需要查看或查找几个示例,以及Yii教程

$mailer->MailerConfirmation();