Zend,组织和MVC

时间:2013-11-04 13:23:43

标签: php zend-framework

我是初学者,我对Zend中的组织提出了一个问题(使用模型视图控制器架构)。

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

我的问题是,我应该在哪里进行操作(查找成员订阅者,向他们发送电子邮件,通知,......)。 现在我在我的类Subject中的disable()函数中执行它,你看。而且我认为这不是正确的做法(虽然这可能有用)......

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

提前谢谢你:)

1 个答案:

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