gre*_*emo 17 bundle symfony doctrine-orm
我想我对Symfony以及bundle如何工作有很好的理解.
然而,我从来没有找到如何解决一个简单的问题:制作一个可重复使用的捆绑包,提供数据,如表格/主义实体预先填充(即)世界上所有国家名称,意大利所有省份,英格兰的税率历史和等等.
当然,目的是提供依赖于此数据源的表单,服务和控制器,而无需跨项目复制和粘贴表和实体.
你会怎么做?
数据夹具IMHO不是一个选项,因为一个明显的原因:你将在它运行时清除你的数据库.
从静态数据源(json,YAML)读取并执行插入/更新的自定义命令?
第一步是在Bundle中声明一个Doctrine实体.我认为您应该创建DataFixtures以将数据填充到db中.
您可能应该考虑使用Seeds而不是Fixtures.
夹具是假数据,用于测试您的应用程序
种子是应用程序工作所需的最小数据.
从技术上讲,这些是完全相同的,你在"DataFixtures /"文件夹下声明它,然后使用"doctrine:fixtures:load"命令导入它们.
您可以在"DataFixtures"文件夹下创建文件夹"Fixtures /"和文件夹"Seeds /",然后使用命令加载种子
php app/console doctrine:fixtures:load --fixtures=/path/to/seeds/folder --append
Run Code Online (Sandbox Code Playgroud)
在评论中建议,创建自定义Symfony2命令以强制"--append"模式可能更安全,尤其是在生产环境中.如果没有此模式,您的数据库将被清除,您可能会丢失生产数据.
| 归档时间: |
|
| 查看次数: |
3667 次 |
| 最近记录: |