2009-01-30 4 views
1

Я работаю над фреймворком в PHP, частью этой работы фреймворка является запись SQL-кода для генерации новых столбцов MySQL.Как мне создать интерфейс для генератора столбцов SQL в PHP?

Что является самым элегантным способом передать в кучу параметров для столбца, а затем превратить это в код 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. The PHP-код должен быть как можно более кратким.
+0

Мне жаль, но это похоже на ужасный дизайн. Разве это не куча накладных расходов, содержащая его в YAML? –

+0

вы должны рассмотреть мой прецедент. Это для рамки для внутреннего использования в моей компании. Мы хотим иметь возможность абстрагироваться от общих конфигураций столбцов базы данных. – macinjosh

ответ

1

Я рекомендую вам создать класс Column, который принимает в качестве аргумента конструктора массив, который может определять различные точки конфигурации, которые вы хотите. Те, которые не имеют значения в каждом конкретном случае, вы просто не определяете.

0

Не общий, но вы знаете проект Propel?

Они используют xml для объяснения модели, но the symfony project (которые используют propel как плагин) используют yaml.