db = $db; $this->event = $event; } /** * Generate a random token with different methods: openssl or /dev/urandom or fallback to uniqid() * * @access public * @return string Random token */ public static function generateToken() { if (function_exists('openssl_random_pseudo_bytes')) { return bin2hex(\openssl_random_pseudo_bytes(16)); } else if (ini_get('open_basedir') === '' && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { return hash('sha256', file_get_contents('/dev/urandom', false, null, 0, 30)); } return hash('sha256', uniqid(mt_rand(), true)); } }