我是初学者,我对Zend中的组织提出了一个问题(使用模型视图控制器架构)。
已经解释了...... 假设我有一个对象“ $ subject ”(Zend_Db_Table_Row_Abstract),对象“ $ member ”(Zend_Db_Table_Row_Abstract)可以订阅。 如果我关闭相关的 $ subject ( $ subject-> disable()),则会员会收到电子邮件...
我的问题是,我应该在哪里进行操作(查找成员订阅者,向他们发送电子邮件,通知,......)。 现在我在我的类Subject中的disable()函数中执行它,你看。而且我认为这不是正确的做法(虽然这可能有用)......
你有想法,回答......?
提前谢谢你:)
答案 0 :(得分:1)
很久以前,我做了同样的事情。 我创建了一个模型类EmailsOut,我从控制器中调用它
CREATE TABLE `emails_out` (
`id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`subject` VARCHAR(255) NOT NULL DEFAULT '',
`body` LONGTEXT NULL,
`from` VARCHAR(255) NOT NULL,
`to` MEDIUMTEXT NULL,
`cc` MEDIUMTEXT NULL,
`bcc` MEDIUMTEXT NULL,
`status` VARCHAR(50) NOT NULL DEFAULT 'ready',
PRIMARY KEY (`id`),
UNIQUE INDEX `id` (`id`)
)
在您的模型中 EmailsOut.php
class MyApp_Model_DbTable_EmailsOut extends Zend_Db_Table_Abstract
{
protected $_name = 'emails_out';
}
在您的控制器中
public function turnOffAction() {
// Creation of your $subject object.
// Disabling the subject
$subject->disable();
//Sending the email
$tEmailsOut = new MyApp_Model_DbTable_EmailsOut();
$email = $tEmailsOut->createRow();
$email->subject ="This is the subject";
$email->body = "This is the body";
$email->from = "mr.x@gmail.com|Mr. X";
$email->to = "mr.y@gmail.com|Mr. Y";
$email->save();
// The rest of the function
}
然后,我有一个cron工作每分钟发送所有电子邮件