Генерация данных (с использованием PHP) в файле фикстур YML - PullRequest
2 голосов
/ 12 февраля 2010

Я хочу создать тестовые данные для файла фикстуры. Я хочу создать тестовые данные вместо того, чтобы вводить сотни записей.

Предполагая, что моя схема такая, как показано ниже:

  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]

Как мне сгенерировать тестовые данные для сотрудников (используя PHP в моем YML-файле)? Я видел, как это делается некоторое время назад, в документации Symfony - однако, несмотря на повторный поиск, я не могу найти страницу на сайте SF (может быть, она была удалена?)

Ответы [ 2 ]

3 голосов
/ 12 февраля 2010

Я думаю, вы ищете динамические приборы . И действительно имейте это в виду:

  • Операторы <?php ?> должны всегда начинать строку или быть врезанными в значение.
  • Если оператор <?php ?> завершает строку, вам нужно явно вывести новую строку ("\ n").
1 голос
/ 12 февраля 2010

Symfony раньше (и, вероятно, все еще делает) разрешает PHP в своих файлах конфигурации YML , но я не уверен насчет файлов фикстур. Тем не менее, если вам кажется, что вы пытаетесь использовать PHP в YML-файле, это не нужно, вам просто нужно создать скрипт, который один раз пишет гигантский YML-файл.

Чтобы сгенерировать ваши приборы, я бы предложил создать по одной строке в каждой из определенных вами таблиц, а затем выгрузить эти данные в файл приборов, чтобы получить шаблон для ваших данных. Затем используйте этот шаблон фикстур для своего сценария PHP, заменив тестовые значения сгенерированными данными в цикле.

...