PageRenderTime 59ms CodeModel.GetById 35ms RepoModel.GetById 1ms app.codeStats 0ms

/src/Faker/ORM/Mandango/ColumnTypeGuesser.php

http://github.com/fzaninotto/Faker
PHP | 49 lines | 38 code | 4 blank | 7 comment | 1 complexity | 4fd1b603a48ecfe5cd4de4942f191d8e MD5 | raw file
  1. <?php
  2. namespace Faker\ORM\Mandango;
  3. class ColumnTypeGuesser
  4. {
  5. protected $generator;
  6. /**
  7. * @param \Faker\Generator $generator
  8. */
  9. public function __construct(\Faker\Generator $generator)
  10. {
  11. $this->generator = $generator;
  12. }
  13. /**
  14. * @return \Closure|null
  15. */
  16. public function guessFormat($field)
  17. {
  18. $generator = $this->generator;
  19. switch ($field['type']) {
  20. case 'boolean':
  21. return function () use ($generator) {
  22. return $generator->boolean;
  23. };
  24. case 'integer':
  25. return function () {
  26. return mt_rand(0, intval('4294967295'));
  27. };
  28. case 'float':
  29. return function () {
  30. return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295'));
  31. };
  32. case 'string':
  33. return function () use ($generator) {
  34. return $generator->text(255);
  35. };
  36. case 'date':
  37. return function () use ($generator) {
  38. return $generator->datetime;
  39. };
  40. default:
  41. // no smart way to guess what the user expects here
  42. return null;
  43. }
  44. }
  45. }