2009-01-30 4 views
1

Je travaille sur un framework en PHP, une partie de ce framework est d'écrire du code SQL pour générer de nouvelles colonnes MySQL.Comment devrais-je concevoir l'interface d'un générateur de colonne SQL en PHP?

Quelle est la manière la plus élégante de transmettre un ensemble de paramètres pour une colonne, puis de le transformer en code SQL? À titre d'exemple est un peu YAML je, qui spécifie les paramètres pour créer une colonne varchar ici:

- 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 

Mes contraintes de conception sont les suivantes:

  1. Le YAML ne peut contenir aucune syntaxe SQL
  2. Le Le code PHP doit être aussi concis que possible.
+0

Je suis désolé, mais ça a l'air d'un design terrible. Est-ce pas un tas de frais généraux en le contenant dans YAML comme ça? –

+0

vous devez considérer mon cas d'utilisation. Ceci est pour un cadre pour une utilisation interne à mon entreprise. Nous voulons être en mesure d'abstraire nos configs de colonnes DB courantes. – macinjosh

Répondre

1

Je vous recommande de créer une colonne de classe qui prend, en tant qu'argument de constructeur, un tableau qui peut définir les différents points de configuration que vous voulez. Ceux qui n'ont pas d'importance dans chaque cas particulier que vous ne définissez pas.

0

Pas totalement lié mais connaissez-vous le projet Propel?

Ils utilisent xml pour expliquer le modèle mais the symfony project (qui utilisent propel comme plugin) utilisent yaml.

Questions connexes