You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

LuStringUtils.php 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: robin
  5. * Date: 1/10/16
  6. * Time: 11:28 PM
  7. */
  8. namespace Luticate\Utils\Business;
  9. use Carbon\Carbon;
  10. class LuStringUtils
  11. {
  12. public static function snakeToCamelCase($string, $capitalizeFirstCharacter = false)
  13. {
  14. $str = preg_replace_callback("/_[a-zA-Z0-9]/", function($matches)
  15. {
  16. return strtoupper($matches[0][1]);
  17. }, $string);
  18. if ($capitalizeFirstCharacter && !empty($str)) {
  19. $str[0] = strtoupper($str[0]);
  20. }
  21. else {
  22. $str[0] = strtolower($str[0]);
  23. }
  24. return $str;
  25. }
  26. public static function camelCaseToSnake($string, $underscoreFirstCharacter)
  27. {
  28. $str = preg_replace_callback("/[A-Z0-9]/", function($matches)
  29. {
  30. return strtolower("_" . $matches[0]);
  31. }, $string);
  32. if (!$underscoreFirstCharacter && !empty($str) && $str[0] == "_") {
  33. $str = substr($str, 1, strlen($str) - 1);
  34. }
  35. return $str;
  36. }
  37. public static function convertJsonString($json, $capitalizeFirstCharacter = false)
  38. {
  39. $array = json_decode($json, true);
  40. return LuArrayUtils::snakeToCamelCase($array, $capitalizeFirstCharacter);
  41. }
  42. /**
  43. * @param $str
  44. * @return null|Carbon
  45. */
  46. public static function parseDate($str)
  47. {
  48. try {
  49. return Carbon::parse($str);
  50. } catch (\Exception $e) {
  51. return null;
  52. }
  53. }
  54. public static function endsWith($haystack, $needle) {
  55. return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0
  56. && strpos($haystack, $needle, $temp) !== false);
  57. }
  58. public static function startsWith($haystack, $needle) {
  59. return $needle === "" || strrpos($haystack, $needle, -strlen($haystack)) !== false;
  60. }
  61. }