Helpers.php 884 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. namespace App\Helpers;
  3. use Illuminate\Support\Str;
  4. class Helpers
  5. {
  6. /**
  7. * Generate a unique filename
  8. *
  9. * @param string $extension
  10. * @return string The filename
  11. */
  12. public static function getUniqueFilename(string $extension) : string
  13. {
  14. return Str::random(40) . '.' . $extension;
  15. }
  16. /**
  17. * Clean a version number string
  18. *
  19. * @param string|null $release
  20. * @return string|false
  21. */
  22. public static function cleanVersionNumber(?string $release) : string|false
  23. {
  24. // We use the regex for semver detection (see https://semver.org/)
  25. return preg_match('/(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?/', $release, $version) ? $version[0] : false;
  26. }
  27. }