0

我是一个初学者,我有一个关于 Zend 组织的问题(使用模型视图控制器架构)。

已经解释了……假设我有一个对象“ $subject ”(Zend_Db_Table_Row_Abstract),对象“ $member ”(Zend_Db_Table_Row_Abstract)可以订阅它。如果我关闭有问题的$subject ( $subject->disable() ),会员应该会收到一封电子邮件...

我的问题是,我应该在哪里进行操作(查找会员订阅者,向他们发送电子邮件,通知,......)。现在我在我的班级主题的 disable() 函数中执行此操作,你看。而且我不认为这真的是正确的做法(尽管这可能有效)......

你有想法,回答......?

先感谢您 :)

4

1 回答 1

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 工作,每分钟发送一次所有电子邮件

于 2013-11-04T13:45:56.880 回答