On 25/06/2024 16:27, Marco Pivetta wrote:

 * `uniqid()`, in my case (XKCD 1172) is largely used for quickly generating a semi-random string for test purposes: a suitable replacement PRNG implementation would be welcome. Even refactoring with tools like Rector will lead to quite messy code, or added dependencies. IMO fine to get rid of **this specific implementation**, if a safe function is provided, such as `random_ascii_string()` or such (dunno, just a hint)


Agreed, the implementation is weird, but nothing else matches the convenience to just get "some random printable bytes". As of PHP 8.3, we finally have Random\Randomizer::getBytesFromString, but the comparison is pretty stark:

$foo = uniqid();
$foo = (new \Random\Randomizer)->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 13);

Alternatively, you have the shorter but slightly cryptic:

$foo = bin2hex(random_bytes(6));

Then again, if you _actually_ want it to be unique, rather than random, those aren't the right replacements anyway.

I'd love to replace uniqid() with *something*, but I don't think we have that thing yet.


--
Rowan Tommins
[IMSoP]

Reply via email to