@@ -15,18 +15,30 @@ class All implements Generator
15
15
protected $ _randomizer ;
16
16
17
17
/**
18
- * Initializes the All Generator with the default generator list .
18
+ * Initializes the All Generator with the list of generators to choose from .
19
19
*
20
20
* @api
21
21
* @param array $generators The random generators to use.
22
22
* @param \Cinam\Randomizer\Randomizer $randomizer The random number generator.
23
23
*/
24
- public function __construct (array $ generators = [] , Randomizer $ randomizer = null )
24
+ public function __construct (array $ generators , Randomizer $ randomizer = null )
25
25
{
26
- $ this ->_generators = empty ( $ generators ) ? [ ' \Nubs\RandomNameGenerator\Alliteration ' , ' \Nubs\RandomNameGenerator\Vgng ' ] : $ generators ;
26
+ $ this ->_generators = $ generators ;
27
27
$ this ->_randomizer = $ randomizer ;
28
28
}
29
29
30
+ /**
31
+ * Constructs an All Generator using the default list of generators.
32
+ *
33
+ * @api
34
+ * @param \Cinam\Randomizer\Randomizer $randomizer The random number generator.
35
+ * @return \Nubs\RandomNameGenerator\All The constructed generator.
36
+ */
37
+ public static function create (Randomizer $ randomizer = null )
38
+ {
39
+ return new self ([new Alliteration ($ randomizer ), new Vgng ($ randomizer )], $ randomizer );
40
+ }
41
+
30
42
/**
31
43
* Gets a randomly generated name using the configured generators.
32
44
*
@@ -45,10 +57,6 @@ public function getName()
45
57
*/
46
58
protected function _getRandomGenerator ()
47
59
{
48
- $ generator = $ this ->_randomizer ?
49
- $ this ->_randomizer ->getArrayValue ($ this ->_generators ) :
50
- $ this ->_generators [array_rand ($ this ->_generators )];
51
-
52
- return new $ generator ($ this ->_randomizer );
60
+ return $ this ->_randomizer ? $ this ->_randomizer ->getArrayValue ($ this ->_generators ) : $ this ->_generators [array_rand ($ this ->_generators )];
53
61
}
54
62
}
0 commit comments