public function generatePassword(int $length = 8)
    {
        if ($length <= 0)
            throw new DomainException("Cannot generate zero-length passwords");

        if (empty($this->characters))
            throw new UnderflowException("First add characters used to generate the password");

        $chars = implode('', array_keys($this->characters));
        $max_val = mb_strlen($chars) - 1;
        $pwd = "";
        for ($i = 0; $i < $length; ++$i)
        {
            $pos = random_int(0, $max_val);
            $pwd .= mb_substr($chars, $pos, 1);
        }
        return $pwd;
    }
public function generatePassword(int $length = 8)
    {
        if ($length <= 0)
            throw new DomainException("Cannot generate zero-length passwords");

        if (empty($this->characters))
            throw new UnderflowException("First add characters used to generate the password");

        $chars = implode('', array_keys($this->characters));
        $max_val = mb_strlen($chars) - 1;
        $pwd = "";
        for ($i = 0; $i < $length; ++$i)
        {
            $pos = random_int(0, $max_val);
            $pwd .= mb_substr($chars, $pos, 1);
        }
        return $pwd;
    }
public function generatePassword ( int $ length = 8 ) { if ( $ length <= 0 ) throw new DomainException ( "Cannot generate zero-length passwords" ) ; if ( empty ( $ this -> characters ) ) throw new UnderflowException ( "First add characters used to generate the password" ) ; $ chars = implode ( '' , array_keys ( $ this -> characters ) ) ; $ max_val = mb_strlen ( $ chars ) - 1 ; $ pwd = "" ; for ( $ i = 0 ; $ i < $ length ; ++ $ i ) { $ pos = random_int ( 0 , $ max_val ) ; $ pwd .= mb_substr ( $ chars , $ pos , 1 ) ; } return $ pwd ; }
Generate a password of the specified length
Generate a password of the specified length