2010-06-17 6 views
1

Cette question implique beaucoup de symfony mais il devrait être assez facile pour quelqu'un de suivre qui ne connaît que YAML et pas symfony.Est-ce que YAML peut hériter?

Mes modèles symfony proviennent d'un processus en trois étapes: d'abord, je crée les tables dans MySQL. Deuxièmement, je lance une commande symfony (symfony doctrine: build-schema) pour convertir ma structure de table en un fichier YAML. Troisièmement, je lance une autre commande symfony (symfony doctrine: build-model) pour convertir le fichier YAML en code PHP.

Voici le problème: il y a des tables dans la base de données que je ne veux pas finir dans mon code symfony. Par exemple, disons que j'ai deux tables: une appelée my_table et une autre appelée wordpress. Le fichier YAML je finis avec pourrait ressembler à ceci:

MyTable: 
    connection: doctrine 
    tableName: my_table 
Wordpress: 
    connection: doctrine 
    tableName: wordpress 

Ce qui est génial, sauf la table wordpress n'a rien à voir avec mes modèles symfony. Le résultat est que chaque fois que je fais une modification à ma base de données et que je génère ce fichier YAML, je dois supprimer manuellement wordpress. C'est ennuyant!

Je voudrais être en mesure de créer un fichier appelé baseConfig.php ou quelque chose qui ressemble à ceci:

$config = array(
    'MyTable' => array(
    'connection' => 'doctrine', 
    'tableName' => 'my_table', 
), 
    'Wordpress' => array(
    'connection' => 'doctrine', 
    'tableName' => 'wordpress', 
), 
); 

Et alors je pourrais avoir un fichier séparé appelé config.php ou quelque chose où je pouvais apporter des modifications à la configuration de base:

unset($config['Wordpress']); 

ma question est: est-il possible de convertir YAML en code exécutable PHP (par opposition à charger le code YAML eN PHP comme ce sfYaml :: load()) vers les réaliser ce genre de chose? Ou y a-t-il peut-être un autre moyen d'obtenir l'héritage de YAML? Merci, Jason

+3

Vous voudrez peut-être examiner comment vous avez posé cette question. Vous êtes venu avec une solution déjà en tête, et demandé en conséquence. Vous pourriez être mieux servi en posant des questions sur le problème de la racine: comment faire que le créateur de schéma de Doctrine ignore certaines tables. – Charles

Répondre

0

Une autre approche:

Je ne sais pas si Symphony vous permettra de faire cela, mais Doctrine supports hand-built schema files. Vous devez synchroniser les éléments manuellement, mais en fonction de la quantité de vos tables, cela peut être gérable.