如何将DB中的枚举与PHP代码同步?

Ita*_*vka 5 php mysql enums constants build

具有数百个表的数据库通常会在其中定义更少的枚举/集合.
你如何将你的PHP代码与枚举值同步,以避免在代码中使用字符串文字(我们都知道它似乎更容易,但从长远来看会导致愚蠢的错误).
我能想到的唯一好的解决方案是在项目构建期间使用一个过程,该过程将为DB中的所有枚举生成常量,或者使用这些值创建和编译PHP扩展.
有什么不同的,更好的解决方案吗?

Vic*_*let 3

正如柏拉图所说:要么 PHP 和 SQL 是独立的,要么 SQL 是从 PHP 生成的,要么 PHP 是从 SQL 生成的,要么两者都是从同一个源生成的。

如果发生很多变化,第一个通常是不可接受的,但在其他方面却相当稳定。

第二个是最近许多从 PHP 端管理 SQL(并从 PHP 端优雅地处理架构更改)的解决方案所发生的情况。这意味着您疯狂的 SQL 忍者技能可能毫无用处且令人沮丧

第三个是你的建议。只要您能够管理“构建期间生成”部分,而不需要触及源代码控制系统和软件包系统,就可以了。拥有一个干净的构建系统会有所帮助(这在 PHP 中有些不寻常)。

第四个涉及调整现有的数据库建模工具来生成 SQL 模式和 PHP 代码。这样,您只需每两周使用该工具一次,生成 PHP 和 SQL,然后提交结果。然而,调整该工具可能会非常麻烦(话又说回来,您可以尝试查找 XML 导出并从那里开始工作)。