【发布时间】:2011-03-04 17:42:45
【问题描述】:
这个问题涉及到很多symfony,但是对于只知道YAML而不知道symfony的人来说应该很容易理解。
我的 symfony 模型来自三个步骤:首先,我在 MySQL 中创建表。其次,我运行 symfony 命令(symfony 学说:build-schema)将我的表结构转换为 YAML 文件。第三,我运行另一个 symfony 命令(symfony 学说:build-model)将 YAML 文件转换为 PHP 代码。
问题是:数据库中有一些表我不想在我的 symfony 代码中结束。例如,假设我有两张表:一张名为my_table,另一张名为wordpress。我最终得到的 YAML 文件可能如下所示:
MyTable:
connection: doctrine
tableName: my_table
Wordpress:
connection: doctrine
tableName: wordpress
这很好,只是 wordpress 表与我的 symfony 模型无关。结果是每次我对数据库进行更改并生成此 YAML 文件时,我都必须手动删除 wordpress。好烦!
我希望能够创建一个名为 baseConfig.php 的文件或类似这样的文件:
$config = array(
'MyTable' => array(
'connection' => 'doctrine',
'tableName' => 'my_table',
),
'Wordpress' => array(
'connection' => 'doctrine',
'tableName' => 'wordpress',
),
);
然后我可以有一个名为 config.php 的单独文件或我可以对基本配置进行修改的文件:
unset($config['Wordpress']);
所以我的问题是:有没有办法将 YAML 转换为可执行的 PHP 代码(而不是像 sfYaml::load() 那样将 YAML 加载到 PHP 代码中)来实现这种事情?或者是否有其他方法可以实现 YAML 继承? 谢谢, 杰森
【问题讨论】:
-
您可能想考虑一下您是如何提出这个问题的。您已经想到了一个解决方案,并提出了相应的要求。询问根本问题可能会更好地为您服务:如何使 Doctrine 的模式构建器忽略某些表。