CakePHP,电子邮件模型和电子邮件组件。我做了些蠢事

时间:2010-10-25 21:07:16

标签: php email cakephp model components

我有一个名为Emails的模型,我已经为其构建了很多功能,但是现在我实际上已经开始在电子邮件控制器中发送电子邮件并且已经碰壁了。

电子邮件组件与模型冲突,它们都以$ this->电子邮件引用。

我的问题是如何重命名组件(返回并更改模型将会有很多工作)。

P.S。我习惯了轨道所以我认为它会被称为通知器。

4 个答案:

答案 0 :(得分:5)

您只需重命名EmailComponent:

/controllers/components/email_handler.php:

App::import('Component', 'Email');

class EmailHandlerComponent extends EmailComponent { }

控制器:

public $components = array('EmailHandler');

public function foo() {
    $this->EmailHandler->...
}

答案 1 :(得分:1)

我可能只是使用sed。在确保最新版本安全地在VCS中之后,像

这样的命令
sed 's/$this->Email/$this->Notification/' -i *php

在相关目录中执行应该做的伎俩。我想你可能还需要执行alter/modify table语句来重命名表(我不确定Cake如何处理它,因为我之前没有使用它)。

答案 2 :(得分:0)

我稍微查看了Controller类的API,我很确定您的命名冲突没有简单的解决方法。尽管它可能很繁琐且耗时,但你可能最好咬掉子弹并重命名你的模型。如果不出意外,那就是更可维护和更强大的方法,这样做可能会让你付出十倍的代价。

答案 3 :(得分:0)

使用IDE(例如NetBeans)可以让您的生活更轻松。它具有重构/重命名等功能,它甚至会尝试将引用重命名为其他文件。

Search / Repalce作为最后的手段也可能派上用场。

作为程序员,永远不要手动重命名;)