Как мне следует спроектировать интерфейс к генератору столбцов SQL на PHP?
-
20-08-2019 - |
Вопрос
Я работаю над фреймворком на 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
Мои дизайнерские ограничения заключаются в следующем:
- YAML не может содержать никакого синтаксиса SQL
- PHP-код должен быть как можно более кратким.
Решение
Я рекомендую вам создать столбец класса, который принимает в качестве аргумента конструктора массив, который может определять различные точки конфигурации, которые вы хотите.Те, которые не имеют значения в каждом конкретном случае, вы просто не определяете.
Другие советы
Не совсем связанные, но знаете ли вы Продвигать проект ?
Они используют xml для объяснения модели, но проект symfony (которые используют propel в качестве плагина) используйте yaml.