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.

LuBusiness.php 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. namespace Luticate\Utils;
  3. abstract class LuBusiness {
  4. /**
  5. * @param string $name
  6. * @param mixed $default
  7. * @return mixed
  8. */
  9. public static function getParam($name, $default = null)
  10. {
  11. return array_key_exists($name, LuController::$parameters) ? LuController::$parameters[$name] : $default;
  12. }
  13. /**
  14. * @param string[] $params
  15. * @return bool
  16. */
  17. public static function hasParam(array $params)
  18. {
  19. foreach ($params as $p) {
  20. if (!array_key_exists($p, LuController::$parameters)) {
  21. return false;
  22. }
  23. }
  24. return true;
  25. }
  26. /**
  27. * @param string $param
  28. * @param mixed $validate
  29. * @return string
  30. */
  31. public static function checkParam($param, $validate = null)
  32. {
  33. $value = self::getParam($param);
  34. if (is_null($value) || trim($value) == '')
  35. abort(400, 'Missing parameter: ' . $param);
  36. if ($validate != null) {
  37. if (is_callable($validate)) {
  38. $validate = $validate($value);
  39. }
  40. else {
  41. $validate = preg_match($validate, $value);
  42. }
  43. if (!$validate)
  44. abort(400, 'Bad parameter value: ' . $param);
  45. }
  46. return $value;
  47. }
  48. /**
  49. * @param string
  50. */
  51. public static function unauthorized($reason = 'Unauthorized')
  52. {
  53. abort(401, $reason);
  54. }
  55. /**
  56. * @param string
  57. */
  58. public static function notFound($reason = 'Resource not found')
  59. {
  60. abort(404, $reason);
  61. }
  62. /**
  63. * @param $param string
  64. * @param $values string[]
  65. * @return string
  66. */
  67. public static function getParamInArray($param, $values)
  68. {
  69. $value = self::getParam($param);
  70. if (is_null($value) || !in_array($value, $values))
  71. $value = $values[0];
  72. return $value;
  73. }
  74. /**
  75. * @param $param string
  76. * @param $default int
  77. * @return int
  78. */
  79. public static function getParamInt($param, $default = 0)
  80. {
  81. $value = self::getParam($param);
  82. if (!is_null($value) && is_numeric($value))
  83. return (int)$value;
  84. return $default;
  85. }
  86. /**
  87. * @param $page int
  88. * @param $perPage int
  89. * @param $column string
  90. * @param $order string
  91. * @param $query string
  92. * @return LuDbo[]
  93. */
  94. public static function search($page, $perPage, $column, $order, $query = null)
  95. {
  96. return static::getDataAccess()->search($page, $perPage, $column, $order, $query);
  97. }
  98. /**
  99. * @param $id int
  100. * @return LuDbo|null
  101. */
  102. public static function getById($id)
  103. {
  104. $data = static::getDataAccess()->getById($id);
  105. if (is_null($data))
  106. self::notFound();
  107. return $data;
  108. }
  109. /**
  110. * @param $id int
  111. */
  112. public static function deleteById($id)
  113. {
  114. static::getDataAccess()->deleteById($id);
  115. }
  116. /**
  117. * @return LuDataAccess
  118. */
  119. protected static function getDataAccess()
  120. {
  121. return null;
  122. }
  123. }