Common\Core\Model::generatePassword PHP Метод

generatePassword() публичный статический Метод

Generate a totally random but readable/speakable password
public static generatePassword ( integer $length = 6, boolean $uppercaseAllowed = true, boolean $lowercaseAllowed = true ) : string
$length integer The maximum length for the password to generate.
$uppercaseAllowed boolean Are uppercase letters allowed?
$lowercaseAllowed boolean Are lowercase letters allowed?
Результат string
    public static function generatePassword($length = 6, $uppercaseAllowed = true, $lowercaseAllowed = true)
    {
        // list of allowed vowels and vowel sounds
        $vowels = array('a', 'e', 'i', 'u', 'ae', 'ea');
        // list of allowed consonants and consonant sounds
        $consonants = array('b', 'c', 'd', 'g', 'h', 'j', 'k', 'm', 'n', 'p', 'r', 's', 't', 'u', 'v', 'w', 'tr', 'cr', 'fr', 'dr', 'wr', 'pr', 'th', 'ch', 'ph', 'st');
        // init vars
        $consonantsCount = count($consonants);
        $vowelsCount = count($vowels);
        $pass = '';
        $tmp = '';
        // create temporary pass
        for ($i = 0; $i < $length; ++$i) {
            $tmp .= $consonants[mt_rand(0, $consonantsCount - 1)] . $vowels[mt_rand(0, $vowelsCount - 1)];
        }
        // reformat the pass
        for ($i = 0; $i < $length; ++$i) {
            if (mt_rand(0, 1) == 1) {
                $pass .= mb_strtoupper(mb_substr($tmp, $i, 1));
            } else {
                $pass .= mb_substr($tmp, $i, 1);
            }
        }
        // reformat it again, if uppercase isn't allowed
        if (!$uppercaseAllowed) {
            $pass = mb_strtolower($pass);
        }
        // reformat it again, if uppercase isn't allowed
        if (!$lowercaseAllowed) {
            $pass = mb_strtoupper($pass);
        }
        // return pass
        return $pass;
    }