在YML fixture文件中生成数据(使用PHP)

时间:2010-02-12 13:07:30

标签: php symfony1 yaml

我想为夹具文件生成测试数据。我想生成测试数据,而不必输入数百条记录。

假设我的架构如下所示:

  foobar_department_def:
    _attributes: { phpName: Department }
    id:
    name:             { type: varchar(64), required: true }

  foobar_qualification_def:
    _attributes: { phpName: Qualification }
    id:
    name:             { type: varchar(64), required: true }


  foobar_employee:
    _attributes: { phpName: Employee }
    id:
    first_name:       { type: varchar(64), required: true }
    last_name:        { type: varchar(64), required: true }
    biography:        { type: longvarchar, required: false }
    qualifi_id:       { type: integer, foreignTable: foobar_qualification_def, foreignReference: id, required: true, onUpdate: cascade, onDelete: restrict }
    dept_id:          { type: integer, foreignTable: foobar_department_def, foreignReference: id, required: true, onUpdate: cascade, onDelete: restrict }
    _uniques:
      idxu_fb_qly_dept:  [qualifi_id, dept_id]

我如何为员工生成测试数据(在我的YML文件中使用PHP)?我在Symfony文档中看到了这一点,但是,尽管再次搜索,我无法在SF网站上找到该页面(可能已被删除了吗?)

2 个答案:

答案 0 :(得分:3)

我猜您正在寻找dynamic fixtures。并牢记这一点:

  
      
  • <?php ?>语句必须始终开始该行,或者嵌入值。
  •   
  • 如果<?php ?>语句结束一行,您需要明确输出新行(“\ n”)
  •   

答案 1 :(得分:1)

Symfony曾经(并且可能仍然)allow PHP in it's configuration YML files,但我不确定fixtures文件。但是,听起来你不想在YML文件中尝试PHP,你只需要创建一个写一个巨大的YML文件的脚本。

要生成灯具,我建议在您定义的每个表中创建一行,然后将该数据转储到灯具文件中,为您的数据提供模板。然后使用该灯具模板为您的PHP脚本,用循环中生成的数据替换您的测试值。