【问题标题】:How should I design the interface to a SQL column generator in PHP?我应该如何在 PHP 中设计与 SQL 列生成器的接口?
【发布时间】:2010-10-04 14:29:31
【问题描述】:

我正在开发一个 PHP 框架,这个框架的一部分工作是编写 SQL 代码来生成新的 MySQL 列。

为一列传递一堆参数然后将其转换为 SQL 代码的最优雅的方法是什么?作为一个例子,我有一些 YAML,它指定了用于创建 varchar 列的参数:

- type: character
        data-type:
            type: varchar
            length: 255
            decimals: null
            unsigned: null
            zerofill: null
            collate: utf8_unicode_ci
            character-set: utf8
            binary: false
            spatial-type: null
            values: null
        nullify: true
        default: null
        increment: false
        unique: false
        primary: false
        comment: This is a small general text field.
        format: default
        storage: default

我的设计约束如下:

  1. YAML 不能包含任何 SQL 语法
  2. PHP 代码必须尽可能简洁。

【问题讨论】:

  • 对不起,但这似乎是一个糟糕的设计。像这样将其包含在 YAML 中,这不是一大堆开销吗?
  • 你必须考虑我的用例。这是我公司内部使用的框架。我们希望能够抽象出我们常见的数据库列配置。

标签: php mysql code-generation yaml


【解决方案1】:

我建议你创建一个类 Column 作为构造函数参数,该数组可以定义你想要的各种配置点。在您没有定义的每个特定情况下无关紧要的那些。

【讨论】:

    【解决方案2】:

    不完全相关,但您知道Propel 项目吗?

    他们使用 xml 来解释模型,但 the symfony project(使用 propel 作为插件)使用 yaml。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多