【问题标题】:Reverse of Silverstripe /dev/buildSilverstripe /dev/build 的反转
【发布时间】:2014-07-22 06:51:39
【问题描述】:

有没有办法让 silverstripe 从现有模式生成数据对象?与 /dev/build 正好相反

我有一个想要迁移到 Silverstripe 的现有项目,不幸的是,这意味着要为 30 多个表创建 Dataobject 类。

要么没有人这样做过,要么我的 google foo 不是那么好?

作为一名开发人员,我确信我可以自己实现自动化,但我正在争论它是否比手动创建更快?

【问题讨论】:

  • 我不知道有什么模块可以为您做到这一点,但它应该是可行的,至少对于简单的属性:从架构中获取列名并设置正确的数据类型。外键肯定更复杂,尤其是 m:n,但它也应该是可行的。但是,除非您经常需要这种功能,否则我认为所需的努力不会有回报
  • 感谢您的评论...臭虫,我希望有人知道存在的模块。事实上,在自己实施之前,我必须权衡一下是否值得。

标签: silverstripe


【解决方案1】:

我认为实际上没有一种方法可以做你想做的事,而且我不确定它在技术上是否可行。 无论如何,SilverSmith 模块可以帮助您完成这项任务,它可以从 YAML 文件生成代码:https://github.com/unclecheese/SilverSmith

【讨论】:

  • 感谢您将我指向 SilverSmith,看起来很有趣。现在我想知道是否更容易从 sql DESCRIBE 语句构建 Silverstripe 数据对象,或者是否更容易为每个表创建一个 YAML 文件并让 SilverSmith 生成我的类
  • 如果有很多 has_one、has_many 和 many_many 关系,从 sql DESCRIBE 语句构建 Silverstripe 数据对象可能会很痛苦。如果您可以开发代码生成工具,您可以在addons.silverstripe.org 中发布它,它可能对社区有用。祝你好运!
  • 玩过之后,我决定在 yml 中手动创建对象原型并让 SilverSmith 发挥它的魔力会更加高效。如前所述,将 sql DESCRIBE 结果转换为 SS DataObjects 或 SilverSmiths yml 文件所需的时间要比手动执行要长得多。我仍然热衷于研究自动化它的某一天,但它必须等到我有更多的时间。谢谢大家!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
  • 2015-03-21
  • 2020-12-01
  • 2020-06-27
  • 1970-01-01
  • 2022-09-30
  • 1970-01-01
相关资源
最近更新 更多