2011-08-23 23 views
7

Estoy tratando de usar una clase personalizada que he creado para enviar correo para que pueda mantener los archivos del controlador delgados. Creé mi clase personalizada y la puse en la carpeta de componentes. Luego agregué:Cargando un componente Yii personalizado

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

debajo de los componentes principales en mi archivo de configuración principal.

Esto debería permitirme acceder a la clase directamente corregir? Intento usando:

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

y:

Yii:app()->MailerConfirmation(); 

y todo lo que es terminar con errores.

¿Alguien me puede decir cómo incluyo un componente personalizado? Tal vez estoy haciendo todo mal?

Respuesta

12

En primer lugar, debe ser: "SendMail"

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

Aviso ausencia de puntos en el final "SendMail" en lugar de. Además, esta configuración espera que tenga el archivo php SendMail.php, en el directorio protected/components que es una clase con el nombre "SendMail" y que este componente amplíe CApplicationComponent. La identificación del componente estará con la primera letra más baja, por ejemplo Yii::app()->sendMail y esto devolverá la instancia de la clase "SendMail". No sé lo que es MailerConfirmation, pero si este es un método de objeto SendMail, entonces debe acceder a él como Yii::app()->sendMail->MailerConfirmation()

Si esto no ayuda, entonces publique un código y publique los errores que está recibiendo.

2

Tenga en cuenta que si no se va a establecer las propiedades de los componentes en el archivo de configuración o utilizar otras funciones CApplicationComponent y su archivo de configuración incluye el valor por defecto:

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

Usted puede poner su clase en el sendmail.php componentes de directorio y se cargará automáticamente al llamarla a través de:

$mailer = new SendMail(); 

luego llamar a sus métodos a través de:

$mailer->MailerConfirmation(); 

si desea utilizar CApplicationComponent, es posible que desee buscar here o here para un par de ejemplos, así como los tutoriales Yii.

Cuestiones relacionadas