Como usar los metodos de un module en otro controller

Buenas gente, hace mucho los leo y siempre me las he arreglado, pero ahora tengo algo que no puedo resolver, parace una pavada pero no doy con la respuesta:

Tngo un modulo con sus respectivos metodos,

UserModule.php

dentro tengo un metodo X

Cuando llamo al modulo desde cualquier controller del module funciona ok, pero ahora quiero usar el metodo X desde otro controller externo al module…

modules/user/UserModule.php

modules/controllers/xController.php

UserModule::x… funciona ok

protected/controllers/yController.php

UserModule::x me dice que no puede hacer el include de UserModule.php

supongo que son las rutas, pero no encuentro la manera de indicarle donde esta el moludo.

Gracias de antemano! ::)

Vaya la solucion estaba frente a mis narices

Yii::app()->getModule(‘user’)

Pero no funciona con metodos estaticos!!!! SOS!

Yii::app()->getModule(‘user’)->sendMail… funciona ok

Yii::app()->getModule(‘user’)::sendMail… No… :(

Alguna luz que me alumbre :(

Una vez que hiciste ese llamado ya se importó la clase y podes hacer el llamado.

Otra forma es hacer un import




Yii::import('application.modules.user.UserModule');

UserModule::sendMail();



y después hacer el llamado a la función estática.

Si vas a usar el módulo para este tipo de llamados (estaticos) y no utilizas nada más del código, hacelo con el import.

Si lo vas a usar para llamar a modelos y otras cosas internas del código hacelo así:




$module = Yii::app()->getModule('user');

UserModule::sendMail();



Muchas gracias!

Lo habia solventado con Yii::app()->getModule(‘user’);

Lo que me llama la atencion es el primer metodo no funciona

Yii::import(‘application.modules.user.UserModule’);

Me dice que no encuentra UserModule.php Puede ser por las rutas ya que uso Windoors?

Saludos.