2011-08-23 22 views
7

Denetleyici dosyalarını ince tutabilmek için posta göndermek üzere oluşturduğum özel bir sınıfı kullanmaya çalışıyorum. Özel sınıfımı oluşturdum ve bileşenleri klasörüne koydum. Daha sonra ana yapılandırma dosyanızdaki ana bileşenlerin altında bulunanÖzel bir Yii Bileşeni yükleniyor

.

Bu, sınıfa doğrudan erişmeme izin vermeli?

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

ve:

Yii:app()->MailerConfirmation(); 

ve ben ile bitirmek tüm hataları ben kullanmayı deneyin.

Özel bir bileşeni nasıl eklediğimi söyleyen var mı? Belki bunu yanlış yapıyorum?

cevap

12

Öncelikle bu olmalıdır: "SendMail"

'sendMail' => array(
    'class'=>'application.components.SendMail', 
), 

Bildirimi sonu yerine "SendMail" in noktanın olmayışı. Ayrıca, bu yapılandırma, "SendMail" adında bir sınıf olan korumalı/bileşenler dizininde ve bu bileşen CApplicationComponent öğesini genişleten bir php dosyası olan SendMail.php olmasını bekler. Bileşen kimliği, ilk harfle, örneğin Yii::app()->sendMail ile olacaktır ve bu, "SendMail" sınıfının örneğini döndürecektir. Ben MailerConfirmation ne olduğunu bilmiyorum, ancak bu SendMail nesnesi bir yöntemse, o zaman Yii::app()->sendMail->MailerConfirmation()

gibi erişmeniz gerekiyorsa Bu yardımcı olmazsa, lütfen bazı kodları gönderin ve aldığınız hataları gönderin.

'import'=>array(
    'application.models.*', 
    'application.components.*', 
), 

Sen daki SendMail.php sınıfını koyabilirsiniz: yapılandırma dosyasında herhangi bileşen özelliklerini ayarlayabilir veya diğer CApplicationComponent özelliklerini ve yapılandırma dosyasını kullanacağız değilse varsayılan içerdiğini

2

Not

$mailer->MailerConfirmation(); 
: o aracılığıyla yöntemleri çağırmak

$mailer = new SendMail(); 

: aracılığı diyerek bileşenleri dizin ve irade özdevinimli_yükle

CApplicationComponent kullanmak isterseniz, bir çift örnek için Yveya here'a bakmak isteyebilirsiniz.