3

Magento - 模块 VS 数据流

我正在考虑 ---- 使用 Magento DataFlow 从数据库中提取信息以配合视频 CMS 的可能性。

它可以节省开发时间 - 也可能不会。

它可能会更稳定——也可能不会。

问题变成了将视频系统作为不破解核心的模块紧密集成到磁电机中更好——还是直接查询数据库——释放在磁电机核心之外工作但仍与之交互的能力?

我必须从开发的角度和功能/日常使用/维护的角度来决定它是否更好

--

更新一:

“从您的帖子中不清楚这些数据将在哪里结束,或者您是否正在写入数据库等”

如果在 Magento 中作为模块完成,视频和播放列表将在管理员中配置。

它将是一种“媒体配置器”,可以接收多协议源(例如http://erlyvideo.org/files、aws cloudfront、wowza、任何服务器、brightcove、youtube 等)并吐出/配置代码块(例如 flash、html5 视频、js、php)。这将通过粘贴代码/网址和/或上传内容来完成。

--

如果没有在 Magento 中完成,相同类型的事情将在另一个 CMS 中发生(自定义或类似 drupal 或 wordpress)

--

我不确定必须发生的每一种可能的交互,但是 - 在媒体库中 - 有一个收藏夹系统、保存的会话、用户组权限、订阅内容 (vod)。

单个视频实例也将在商店页面和博客上提供:但交互仅限于提供视频。


更新二:

“Magento 在这种情况下的用途是什么?”

据我目前所知,保存的会话(任何用户)、收藏夹系统(登录用户)、保存的首选项(登录用户)、用户组权限(任何用户或登录用户 + 具有各种用户类型)。

但除了 VOD 实例之外,媒体库的目的是:

A. 提供免费视频剪辑。

B. 让用户看到客户 DVD 产品的预告片。

两者似乎都不需要太多的互动。但是为了保持连续性,最好将所有东西都保存在一个由一个管理员配置的数据库中——不管它是出于必要还是为了方便而更紧密地集成。

但正如最初所说,也许在 db/store 之外可以实现更健壮/多功能或更稳定的独立性。也许后者是由那些真正不了解 Magento 或对其理解有一定限制的人推动的,因此建议分离。我不知道。

--

“除非视频与产品相关,否则没有理由将它们标记为产品。”

这对于刚才提到的预告片和免费视频是有意义的。我想一个可能的例外是 VOD 视频或 VOD 视频组。在这种情况下,我假设您是说视频最好是经过特殊配置的产品,除此之外,它恰好也出现在媒体库中?

在这种情况下,VOD、视频剪辑本身(或其容器)将是一个产品。除了拥有自己的产品页面(如果需要)之外,它还可以根据需要在任何地方进行预览、购买和放置。从代码的角度来看,这是如何“制造”的,这是个问题。

另一种可能不同的方法是这样的:(页面不见了)http://workbookproject.com/newbreed/2010/06/21/build-your-own-vod-portal/ 试试这个:http://filmutopia。 typepad.com/lone_gun_manifesto/2010/07/how-to-build-your-own-vod-portal-in-a-matter-of-hours-for-less-than-100-lgm.html。用户实际购买页面访问权限的位置。

Zac 在他的网站和文章中做得很好,我可以看到 Magento 正在做这种事情,但是正如 Zak 在他的文章末尾指出的那样,他正在使用 Flash,所以我的解决方案会更进一步以 HTML5 视频和/或 [任何协议] 提供。

所以我不知道万磁王是否会像 Zak 那样使用 WP 或其他东西来处理这种事情 VS 是否过于麻烦。

--

“可以在 Magento 中创建常规数据模型来包装数据库调用,如果视频和产品之间没有交互,那么创建其中一个模型应该更干净。”

好的,我阅读了“Magento 中的数据模型”,但在本规范的架构中,我看不到它们与/物理组成的内容有关。

显然,在 Magento 中做事的方法很多。

数据流、数据模型、Magento 模块......哎呀......为什么不折腾小部件?:)

--

对此还有什么看法吗?非常感激。

4

3 回答 3

1

我不确定 Dataflow 是否是答案。数据流更像是 cron 导入/导出,非常适合大规模更新、导出到 ERP 之类的东西 - 如果您正在寻找实时数据,您将需要连接到 API 和提取你需要的信息,这看起来更实用,而且是实时的。就开发时间而言,您的时间投资也不算太荒谬。

于 2010-08-19T16:43:00.590 回答
1

在大多数情况下,从令人头疼的角度来看,留在框架内(而不是破解数据库)是您最好的选择。如果可以的话,创建一个模块来处理交互并随意使用它(从你的帖子中不清楚这些数据将在哪里结束,或者你是否正在写入数据库等)。

使用框架的例外情况是性能是关键时,例如当您有数千或数万条记录要提取时。在这种情况下,从数据库中获取(和写入)有时是唯一可行的选择。

希望有帮助!

谢谢,乔


忽略其他功能(如评论、收藏等。查找 Alan Storm 的关于将数据保存在数据库中的教程),将视频作为产品可以使用属性本身来完成,在这种情况下,所有数据都可以保留在 Magento 中(保存在管理员中,显示在前端)。这样,目录对象将为您与数据库进行调解,从而为您省去很多麻烦。

无论哪种方式,目前似乎都没有任何缩放问题,因此使用框架(主要信息的产品对象,为收藏夹创建自己的对象等)应该是完成此任务的好方法。


实际上,我在这里有点转身。Magento 在这种情况下的用途是什么?除非视频与产品相关,否则没有理由将它们标记为产品。可以在 Magento 中创建常规数据模型来包装数据库调用,如果视频和产品之间没有交互,那么创建其中一个模型应该更干净。

于 2010-08-19T17:47:03.973 回答
1

作为一般规则,我强烈建议编写一个模块。DataFlow 可能有点不透明,并且设计(如前所述)用于批量传输数据,而不是我认为您所要求的实时“事务”查询。

直接写入数据库将绕过 Magento 中存在的所有内置业务和数据层逻辑,这是有充分理由的——例如更新性能索引、检查 ACL 等。所以你应该使用 Mage::getModel('module/model')为您的发展提供方法。它还将为您提供许多方便的方法来选择、过滤、操作对象。

如果您编写自己的模块,您将更能够了解正在发生的事情、调试代码并观察更改的效果。使用moduleCreator将为您提供一个很好的开端。

当您编写模块时,我建议您按照 Joseph 的建议将您的信息作为属性添加到相关产品中。这篇文将引导您完成整个过程。

祝你好运!京东

于 2010-08-22T23:15:58.853 回答