public static function embeddedsMany(Factory $factory, $name, array $config) { return function ($sequence = null) use($factory, $name, $config) { $value = $config['value']; $documents = array(); if (!$value) { $documents[] = DefaultGenerator::embedded($factory, $config['class']); } elseif (is_numeric($value)) { for ($i = 0; $i < (int) $value; $i++) { $documents[] = DefaultGenerator::embedded($factory, $config['class']); } } elseif (is_array($value)) { foreach ($value as $default) { $documents[] = DefaultGenerator::embedded($factory, $config['class'], $default); } } else { throw new \InvalidArgumentException('Unexpected default value for embeddedsMany field'); } return $documents; }; }