Estoy contigo Justin.
Tengo una serie de modelos que desencadenan correos electrónicos basados en ciertas acciones que pueden provenir de usuarios, administradores y scripts de shell para procesos automatizados.
Es mucho más fácil centralizar una respuesta de correo electrónico en el Modelo (como cuando un registro de Orden es "cancelado") que reescribir el correo electrónico en múltiples ubicaciones.
Además, tengo procesos automatizados en los Modelos que manejan algunas 'lógicas' centrales que se conectan en cascada a otros modelos HasOne, belongsTo o hasMany que son reglas de negocio.
Por ejemplo, un script de shell crontabbed llama a Offer-> expire() para 'expirar' una oferta que luego llama a Offer-> make() para hacer otra oferta, pero si no puede, entonces llama a Request-> expira() para 'expirar' la solicitud original. Los correos electrónicos deben enviarse al primer destinatario de la oferta caducado, a los nuevos destinatarios de la oferta y/o al solicitante si caduca. Estos pueden ser llamados por shell crontabbed o por Usuarios o por Admins que pueden gestionar Solicitudes y Ofertas de forma manual. Todos usan diferentes Controladores o interfaces.
Esto es lo que hice y puedo llamarlo modelos dentro y controladores:
if(empty($this->MailsController)) {
App::import('Controller','Mails');
$this->MailsController = new MailsController();
$this->MailsController->constructClasses();
$this->MailsController->Email->startup($this->MailsController);
}
Ahora estoy en condiciones de llamar a esto desde casi cualquier lugar y centralizar toda la lógica de lo que los datos de encontrar(), lo correo electrónico para generar, a quién enviar a, etc a través del siguiente llamado dentro del modelo:
$this->MailsController->orderMail($user_id,$this->id,$mode);
Dado que toda la lógica de correo electrónico está básicamente llamados por los modelos indirecta a través MailsController, voy a dar el código de rscherer un intento.
espero que esto ayude, oh4real
Gracias! "Por favor ingrese al menos 10 caracteres". es un requisito tonto. – Justin
Sí, no puedo solo dar las gracias. Molesto. – Justin
¿puedo agregar esto al modelo de la aplicación en su lugar? –