Zend Mail - 在哪里实例化它?
我正在使用数据映射器/网关设计模式。
所以我有一个:
Mapper; 网关; 领域对象(主要有 getter 和 setter); 一个控制器; 一个视图。
我的问题是:我应该在哪里实例化 Zend Mail ? 我认为这个观点显然是没有问题的,而且网关也不必考虑。
控制器应该保持干净,所以:
映射我们的域对象?
如果我们的表单有一些从数据库检索数据的选择框,那么,也许 Mapper 将是实例化 Zend Mail 的最合适的地方?
谢谢
I'm using a Data Mapper / Gateway design pattern.
So I have a:
Mapper;
Gateway;
Domain Object (mainly with getters and setters);
A controller;
A view.
My question is: where should I instantiate the Zend Mail ?
I believe the view is obviously out of question, and the gateway is, as well, not to be considered.
The controller should be kept clean, so:
Mapper our Domain Object ?
If our form will have some select box that will retrieve data from the database, then, perhaps the Mapper will be the most appropriate place to instantiate Zend Mail ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯嗯?使用 Zend,您可以在引导程序中配置 Zend_Mail,或者使用 application.ini 文件或其他一些配置文件。这就是我现在的配置方式。对于开发人员,我将把邮件写入文件,对于测试,我将通过实际的邮件服务器发送邮件。
我在一个名为 Mail_Service 的类中实例化我的 Zend_Mail 实例。当该邮件服务类需要发送邮件时,它将在内部创建一个 Zend_Mail 实例,并且如果已经创建了一个实例并且需要发送更多邮件,则将使用现有的 Zend_Mail 实例。
它有可以为我发送预定义邮件的方法。例如,
或者
说我的控制器收到创建新用户的请求,那么我的代码的总体流程将像这样
我不知道是否这是最好的方法,但是这样我的服务就可以发挥作用
与服务相关并捕获整个工作流程的名称,而不是仅将调用转发到其他对象的原子操作。
希望这有帮助。
Hmmmm? Well with Zend you can configure your Zend_Mail in your bootstrap or by using the application.ini file or some other config file. That's how I configure mine right now. For dev, I'll write the mails to a file and for testing I'll do mail over an actual mail server.
I instantiate my Zend_Mail instance in a class that I call Mail_Service. This mail service class will create a Zend_Mail instance internally when it needs to send a mail and will use an existing Zend_Mail instance if one has been created and more mails need to be sent.
It has methods that will send predefined mails for me. For example,
OR
Say for example my controller gets a request to create a new user, then the over all flow of my code will be like this
I don't know if this is the best way to do it, but this way my service have function
names that are relevant to the service and capture a whole work flow instead of being atomic operations that just forward calls to other objects.
Hope this helps.
我总是在我的控制器中保存发送邮件的代码。
模型 - 数据库/业务逻辑
视图 - html / 表示层
控制器 - 执行操作的代码。
I always keep code that sends mail in my controllers.
Model - database/business logic
View - html / presentation layer
Controller - The code that does stuff.