2011-08-23 19 views
7

Sto cercando di utilizzare una classe personalizzata che ho creato per inviare la posta in modo da poter mantenere i file del controller sottili. Ho creato la mia classe personalizzata e l'ho inserita nella cartella dei componenti. Ho quindi aggiunto:Caricamento di un componente Yii personalizzato

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

sotto i componenti principali nel mio file di configurazione principale.

Questo dovrebbe consentirmi di accedere alla classe direttamente corretta? Io cerco con:

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

e:

Yii:app()->MailerConfirmation(); 

e tutto quello che finisce con errori.

Qualcuno può dirmi come includo un componente personalizzato? Forse sto sbagliando tutto questo?

risposta

12

In primo luogo che dovrebbe essere: "SendMail"

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

Avviso l'assenza di punti alla fine "SendMail" invece di. Inoltre, questa configurazione si aspetta che tu abbia il file php SendMail.php, nella directory protected/components che è una classe con il nome "SendMail" e che questo componente estende CApplicationComponent. L'id del componente sarà con la prima lettera più bassa, ad esempio Yii::app()->sendMail e restituirà l'istanza della classe "SendMail". Non so cosa sia MailerConfirmation, ma se questo è un metodo di SendMail, allora dovresti accedervi come Yii::app()->sendMail->MailerConfirmation()

Se questo non è d'aiuto, per favore pubblica un po 'di codice e pubblica gli errori che stai ricevendo.

2

Si noti che se non si ha intenzione di impostare le proprietà del componente nel file di configurazione oppure utilizzare altre funzioni CApplicationComponent e file di configurazione include il valore di default:

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

Si può mettere la classe sendMail.php nel directory componenti e caricamento automatico sarà chiamando tramite:

$mailer = new SendMail(); 

quindi chiamare i metodi di via:

$mailer->MailerConfirmation(); 

se si desidera utilizzare CApplicationComponent, si potrebbe voler guardare here o here per un paio di esempi, così come le esercitazioni Yii.

Problemi correlati