gpt4 book ai didi

zend-framework - Zend Framework 中的小部件 - 它们应该去哪里?

转载 作者:行者123 更新时间:2023-12-04 04:30:21 26 4
gpt4 key购买 nike

我使用 Zend Framework(使用 Doctrine 作为 ORM)已经有一段时间了,并用它完成了几个项目。

在几个即将进行的项目中,我需要类似于 Wordpress 执行它们的方式的小部件。您有一个帖子/页面,可能如下所示:

Subscribe to my newsletter:
[subscribe/]

View my events
[events limit=5 sort=date/]

View this page's comments
[comments/]

其中订阅小部件将替换为 Blog::subscribeWidget,事件可以替换为 Events::eventsWidget 等。

在过去的几周里,我一直在想我到底该怎么做???我想出了以下选项:

  1. 我可以将小部件放在 Controller 中,然后像调用操作一样调用它们。这里的问题是代码可能会在 Controller 之间传输,而且我已经读到,由于调度量,这很昂贵。

  2. 我可以将小部件放置为 View 助手。所以在 View 中我可以有 $this->renderPage($Page),然后它会处理所有的小部件。这里的问题是,如果小部件需要执行一些业务逻辑,例如发布新评论,那真的不应该在 View 中,不是吗?

  3. 另一个选择是在模型中放置小部件?但是,他们究竟如何呈现内容以供显示?

额外的并发症出现在:

  1. 假设评论小部件还将处理评论的发布、删除等操作。

  2. 对于事件列表,如果我想对事件的下一页执行 ajax 请求,使用方法 #2(查看助手)这将如何工作?

最佳答案

如果我对你的理解是正确的,你的小部件将需要它们自己的 Action Controller ,这是它们获取要显示的数据、解析表单提交等的逻辑应该去的地方。在这种情况下,小部件和页面之间的区别在于它的呈现方式,即作为 HTML 片段而不是整个页面;你可以使用Action View Helper实现这一目标。

如果您的小部件包含表单,它可能应该使用 AJAX 将表单数据提交回服务器,这样使用小部件就不会导致用户意外离开页面。您可以使用 Head Script Helper 将所需的 JavaScript 注入(inject)到包含小部件的页面中。在您的小部件的 View 和/或操作中。

关于zend-framework - Zend Framework 中的小部件 - 它们应该去哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1515863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com