/** * Public facing method to generate password(s) * * @return string password */ public function generate($num = 1) { if (!is_int($num)) { throw new InvalidArgumentException(sprintf('generate expects parameter 1 of type int. %s given.', gettype($num))); } $passwords = array(); $order = explode(":", $this->format); while (count($passwords) < $num) { $password = ""; foreach ($order as $element) { switch ($element) { case "word": $password .= preg_replace('/(\\W)+.*/', "", $this->faker->streetName); break; case "num": $password .= $this->faker->randomNumber(3); break; case "symbol": $password .= $this->getSymbol(); break; default: $password = $password; } } $passwords[] = $password; } return count($passwords) > 1 ? $passwords : $passwords[0]; }