0

我正在为我工​​作的实验室构建一个小型本地应用程序。长话短说,我编写了一个类(称为 MailParser),它可以登录到共享的 Gmail 帐户并检索/解析始终以标准化格式到达。课堂效果很好。我希望它的界面内置在 Cake 中。我不知道如何将两者适当地结合在一起,而且我非常有信心我正在做的事情,虽然是功能性的,但可以得到很大的改进。

这些电子邮件是我们大学托管的注册表的自动回复;他们通知研究人员已经报名参加实验的学生。

Cake 站点基本上是一个允许实验室成员管理数据库的 UI。MailParser 类需要数据库;它将从这些电子邮件中解析的信息与数据库中的信息进行比较,以随后更新各种 Google 日历(例如,一封电子邮件为“Participant_X 已注册 Experiment_Y”;数据库将知道“Experiment_Y”正在运行通过“Experimenter_Z”并将其发布到他们的日历中)。

Cake 应用程序小而简单;“实验”、“实验者”、“日历”。

我已经这样做了:

<?php 

App:users('AppController', 'Controller');
/**
 * Personas Controller
 *
 * @property Persona $Persona
 */
class MailparsersController extends AppController {
    function index($getMail=false) {
    //bunch o' code
    }

 //bunch o' functions
}
?>

文件名为MailparsersController.php. 没有模型或视图,但我不希望有;最终,这个类将被一个小的 Python 应用程序调用,我想定期向它发出一个 http 请求mylabserver.com/Mailparsers(可以使用 javascript,只是不想让浏览器一直打开)。我的index()函数在被调用时会做它应该做的一切,但会返回一个错误页面。有没有办法让 Cakephp 控制器安静地完成它的工作而不返回视图?

基于蛋糕的 UI 允许实验室成员“注册”他们的实验和相应的日历,从而使部分工作流程自动化;考虑到它的有限用途,我可以自己编写这个 php,但我是 Cakephp 的忠实粉丝,并且一直在寻找将它的用处扩展到我的目的的方法。

谁能建议一种适当的方法将我的 Mailparser 功能带入我的 Cake 应用程序?这会更适合作为插件(我以前从未做过)吗?在这里,我将非常感谢您的任何帮助。谢谢!

4

1 回答 1

1

由于您使用的是 cake 2.x,因此我将建议您这样做:

  1. 将您的课程存储在Lib 文件夹中
  2. 创建一个新组件,例如 MailparserComponent,您可以在其中加载您的类,如下所示:App::uses('Mailparser', 'Lib');
  3. 使用您的组件方法创建一个干净的“蛋糕式”API,并让您的类对应用程序的其余部分隐藏。

或者,您可以将您的类更改为组件。无论哪种方式,您都可以在应用程序的任何控制器中使用您的类,而不会出现任何问题。

此外,如果您真的打算将来在其他应用程序中使用此代码,则可以使用插件。

于 2012-06-01T08:24:02.557 回答